From 1d91d059c552cca69092ec69a671ad428fec83da Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Tue, 12 May 2015 15:08:54 +0200 Subject: [PATCH] small fixes --- .../flash/exporters/shape/BitmapExporter.java | 17 +++++------------ .../decompiler/flash/tags/DefineSpriteTag.java | 2 +- .../decompiler/flash/tags/base/ButtonTag.java | 2 +- .../jpexs/decompiler/flash/gui/ImagePanel.java | 8 +++----- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/shape/BitmapExporter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/shape/BitmapExporter.java index 10e2b632a..f24dd99a5 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/shape/BitmapExporter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/shape/BitmapExporter.java @@ -19,7 +19,7 @@ package com.jpexs.decompiler.flash.exporters.shape; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.exporters.commonshape.ExportRectangle; import com.jpexs.decompiler.flash.exporters.commonshape.Matrix; -import com.jpexs.decompiler.flash.tags.Tag; +import com.jpexs.decompiler.flash.tags.base.CharacterTag; import com.jpexs.decompiler.flash.tags.base.ImageTag; import com.jpexs.decompiler.flash.types.ColorTransform; import com.jpexs.decompiler.flash.types.FILLSTYLE; @@ -38,6 +38,7 @@ import java.awt.MultipleGradientPaint; import java.awt.Paint; import java.awt.Point; import java.awt.RadialGradientPaint; +import java.awt.Rectangle; import java.awt.Shape; import java.awt.Stroke; import java.awt.TexturePaint; @@ -301,16 +302,8 @@ public class BitmapExporter extends ShapeExporterBase { @Override public void beginBitmapFill(int bitmapId, Matrix matrix, boolean repeat, boolean smooth, ColorTransform colorTransform) { finalizePath(); - ImageTag image = null; - for (Tag t : swf.tags) { - if (t instanceof ImageTag) { - ImageTag i = (ImageTag) t; - if (i.getCharacterId() == bitmapId) { - image = i; - break; - } - } - } + CharacterTag character = swf.getCharacter(bitmapId); + ImageTag image = character instanceof ImageTag ? (ImageTag) character : null; if (image != null) { SerializableImage img = image.getImage(); if (img != null) { @@ -476,7 +469,7 @@ public class BitmapExporter extends ShapeExporterBase { ExportRectangle rect = inverse.transform(new ExportRectangle(path.getBounds2D())); double minX = rect.xMin; double minY = rect.yMin; - graphics.fill(new java.awt.Rectangle((int) minX, (int) minY, (int) (rect.xMax - minX), (int) (rect.yMax - minY))); + graphics.fill(new Rectangle((int) minX, (int) minY, (int) (rect.xMax - minX), (int) (rect.yMax - minY))); } graphics.setTransform(oldAf); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java index 24a9e4a49..a2aa8a2b9 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java @@ -135,7 +135,7 @@ public class DefineSpriteTag extends CharacterTag implements DrawableTag, Timeli @Override public RECT getRect() { - return getRect(new HashSet()); + return getRect(new HashSet<>()); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/ButtonTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/ButtonTag.java index fc1374617..f47aa79c3 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/ButtonTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/ButtonTag.java @@ -57,7 +57,7 @@ public abstract class ButtonTag extends CharacterTag implements DrawableTag, Tim @Override public RECT getRect() { - return getRect(new HashSet()); + return getRect(new HashSet<>()); } @Override diff --git a/src/com/jpexs/decompiler/flash/gui/ImagePanel.java b/src/com/jpexs/decompiler/flash/gui/ImagePanel.java index 5609e3130..ddf3e107c 100644 --- a/src/com/jpexs/decompiler/flash/gui/ImagePanel.java +++ b/src/com/jpexs/decompiler/flash/gui/ImagePanel.java @@ -723,13 +723,11 @@ public final class ImagePanel extends JPanel implements MediaDisplay { if (drawable instanceof BoundedTag) { BoundedTag bounded = (BoundedTag) drawable; RECT rect = bounded.getRect(); - if (rect == null) { //??? Why? - rect = new RECT(0, 0, 1, 1); - } + int width = (int) (rect.getWidth() * zoom); int height = (int) (rect.getHeight() * zoom); - SerializableImage image = new SerializableImage((int) (width / SWF.unitDivisor) + 1, - (int) (height / SWF.unitDivisor) + 1, SerializableImage.TYPE_INT_ARGB); + SerializableImage image = new SerializableImage((int) Math.ceil(width / SWF.unitDivisor), + (int) Math.ceil(height / SWF.unitDivisor), SerializableImage.TYPE_INT_ARGB); image.fillTransparent(); Matrix m = new Matrix(); m.translate(-rect.Xmin * zoom, -rect.Ymin * zoom);