Issue #144 Fixed Text display in internal viewer for DefineFont1

This commit is contained in:
Jindra Petk
2013-07-05 18:43:35 +02:00
parent 6600c83d35
commit 0ef0160ee4
2 changed files with 14 additions and 5 deletions

View File

@@ -414,6 +414,7 @@ public class DefineText2Tag extends CharacterTag implements BoundedTag, TextTag,
*
* @param data Data bytes
* @param version SWF version
* @param pos
* @throws IOException
*/
public DefineText2Tag(byte data[], int version, long pos) throws IOException {
@@ -479,8 +480,12 @@ public class DefineText2Tag extends CharacterTag implements BoundedTag, TextTag,
rect.Ymax /= font.getDivider();
rect.Ymin /= font.getDivider();
BufferedImage img = SHAPERECORD.shapeToImage(tags, 4, null, null, glyphs[entry.glyphIndex].shapeRecords, textColor);
g.setTransform(AffineTransform.getScaleInstance(textHeight / 1000f / 20, textHeight / 1000f / 20));
g.drawImage(img, x, y + rect.Ymin, null);
AffineTransform tr = new AffineTransform();
tr.setToIdentity();
float rat = textHeight / 1000f;
tr.translate(rat * x / 20, rat * (y + rect.Ymin) / 20);
tr.scale(rat / font.getDivider(), rat / font.getDivider());
g.drawImage(img, tr, null);
x += entry.glyphAdvance * 1000 / textHeight;
}
}

View File

@@ -419,6 +419,7 @@ public class DefineTextTag extends CharacterTag implements BoundedTag, TextTag,
*
* @param data Data bytes
* @param version SWF version
* @param pos
* @throws IOException
*/
public DefineTextTag(byte data[], int version, long pos) throws IOException {
@@ -490,9 +491,12 @@ public class DefineTextTag extends CharacterTag implements BoundedTag, TextTag,
rect.Ymax /= font.getDivider();
rect.Ymin /= font.getDivider();
BufferedImage img = SHAPERECORD.shapeToImage(tags, 1, null, null, glyphs[entry.glyphIndex].shapeRecords, textColor);
g.setTransform(AffineTransform.getScaleInstance(textHeight / 1000f / 20, textHeight / 1000f / 20));
g.drawImage(img, x, y + rect.Ymin, null);
AffineTransform tr = new AffineTransform();
tr.setToIdentity();
float rat = textHeight / 1000f;
tr.translate(rat * x / 20, rat * (y + rect.Ymin) / 20);
tr.scale(rat / font.getDivider(), rat / font.getDivider());
g.drawImage(img, tr, null);
x += entry.glyphAdvance * 1000 / textHeight;
}
}