From 4d657fddea8760705de62fecb19a5491948f5383 Mon Sep 17 00:00:00 2001 From: Honfika Date: Sun, 2 Mar 2014 23:30:39 +0100 Subject: [PATCH] ImagePanel+SWFPreviewPanel fixes, removed deprecated toImage functions --- trunk/src/com/jpexs/decompiler/flash/SWF.java | 8 +- .../decompiler/flash/gui/ImagePanel.java | 132 ++++++++++-------- .../jpexs/decompiler/flash/gui/MainPanel.java | 3 + .../decompiler/flash/gui/SWFPreviewPanel.java | 22 +-- .../flash/gui/player/PlayerControls.java | 8 +- .../flash/tags/DefineButton2Tag.java | 5 - .../flash/tags/DefineButtonTag.java | 5 - .../flash/tags/DefineEditTextTag.java | 5 - .../flash/tags/DefineMorphShape2Tag.java | 5 - .../flash/tags/DefineMorphShapeTag.java | 5 - .../flash/tags/DefineShape2Tag.java | 5 - .../flash/tags/DefineShape3Tag.java | 5 - .../flash/tags/DefineShape4Tag.java | 5 - .../decompiler/flash/tags/DefineShapeTag.java | 5 - .../flash/tags/DefineSpriteTag.java | 5 - .../decompiler/flash/tags/DefineText2Tag.java | 5 - .../decompiler/flash/tags/DefineTextTag.java | 5 - .../flash/tags/base/DrawableTag.java | 2 - .../decompiler/flash/tags/base/FontTag.java | 3 +- 19 files changed, 101 insertions(+), 137 deletions(-) diff --git a/trunk/src/com/jpexs/decompiler/flash/SWF.java b/trunk/src/com/jpexs/decompiler/flash/SWF.java index 6729a853b..518dfd371 100644 --- a/trunk/src/com/jpexs/decompiler/flash/SWF.java +++ b/trunk/src/com/jpexs/decompiler/flash/SWF.java @@ -84,6 +84,7 @@ import com.jpexs.decompiler.flash.tags.base.CharacterTag; import com.jpexs.decompiler.flash.tags.base.Container; import com.jpexs.decompiler.flash.tags.base.ContainerItem; import com.jpexs.decompiler.flash.tags.base.DrawableTag; +import com.jpexs.decompiler.flash.tags.base.FontTag; import com.jpexs.decompiler.flash.tags.base.ImageTag; import com.jpexs.decompiler.flash.tags.base.PlaceObjectTypeTag; import com.jpexs.decompiler.flash.tags.base.RemoveTag; @@ -2471,9 +2472,12 @@ public final class SWF implements TreeItem { gr.setColor(new Color(0, 0, 0, 0f)); gr.fillRect(0, 0, img.getWidth(), image.getHeight()); drawable.toImage(dframe, layer.ratio, allTags, characters, visited, img, m, clrTrans); - } else { + } else if (drawable instanceof FontTag) { // only DefineFont tags - img = drawable.toImage(dframe, layer.ratio, allTags, characters, visited, transformation, clrTrans); + FontTag fontTag = (FontTag) drawable; + img = fontTag.toImage(dframe, layer.ratio, allTags, characters, visited, transformation, clrTrans); + } else { + throw new Error("Unsupported drawable."); } if (layer.filters != null) { for (FILTER filter : layer.filters) { diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/ImagePanel.java b/trunk/src/com/jpexs/decompiler/flash/gui/ImagePanel.java index 51a7df289..93cf57c2c 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/ImagePanel.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/ImagePanel.java @@ -23,6 +23,8 @@ import com.jpexs.decompiler.flash.gui.player.FlashDisplay; import com.jpexs.decompiler.flash.tags.base.BoundedTag; import com.jpexs.decompiler.flash.tags.base.CharacterTag; import com.jpexs.decompiler.flash.tags.base.DrawableTag; +import com.jpexs.decompiler.flash.tags.base.FontTag; +import com.jpexs.decompiler.flash.tags.base.MorphShapeTag; import com.jpexs.decompiler.flash.types.ColorTransform; import com.jpexs.decompiler.flash.types.RECT; import com.jpexs.helpers.SerializableImage; @@ -47,21 +49,24 @@ import javax.swing.JPanel; public final class ImagePanel extends JPanel implements ActionListener, FlashDisplay { static final String ACTION_SELECT_BKCOLOR = "SELECTCOLOR"; + static final int frameRate = 25; + // play morph shape in 2 second(s) + // this settings should be synchronized with frameCount and frameRate + // settings in Mainpanel.createAndShowTempSwf + static final int morphShapeAnimationLength = 2; public JLabel label = new JLabel(); public DrawableTag drawable; private Timer timer; - private int percent; private int frame = -1; private SWF swf; private HashMap characters; - private int frameRate; private boolean loaded; @Override public void setBackground(Color bg) { if (label != null) { - label.setBackground(bg);//bg); + label.setBackground(bg); } super.setBackground(bg); } @@ -125,7 +130,7 @@ public final class ImagePanel extends JPanel implements ActionListener, FlashDis label.setIcon(null); return; } - percent = 0; + frame = 0; if (drawable.getNumFrames() == 1) { Matrix mat = new Matrix(); mat.translateX = swf.displayRect.Xmin; @@ -150,8 +155,10 @@ public final class ImagePanel extends JPanel implements ActionListener, FlashDis m.translate(-rect.Xmin, -rect.Ymin); drawable.toImage(0, 0, swf.tags, characters, new Stack(), image, m, new ColorTransform()); img = image; - } else { - img = drawable.toImage(0, 0, swf.tags, characters, new Stack(), Matrix.getScaleInstance(1 / SWF.unitDivisor), new ColorTransform()); + } else if (drawable instanceof FontTag) { + // only DefineFont tags + FontTag fontTag = (FontTag) drawable; + img = fontTag.toImage(0, 0, swf.tags, characters, new Stack(), Matrix.getScaleInstance(1 / SWF.unitDivisor), new ColorTransform()); } SWF.putToCache(key, img); } @@ -176,11 +183,7 @@ public final class ImagePanel extends JPanel implements ActionListener, FlashDis @Override public int getCurrentFrame() { - if (drawable == null) { - return 0; - } - int ret = percent * (drawable.getNumFrames() - 1) / 100; - return ret; + return frame; } @Override @@ -199,44 +202,62 @@ public final class ImagePanel extends JPanel implements ActionListener, FlashDis } } + private void nextFrame() { + int newframe = frame == drawable.getNumFrames() - 1 ? 0 : frame + 1; + if (drawable instanceof MorphShapeTag) { + newframe = frame + drawable.getNumFrames() / frameRate / morphShapeAnimationLength; + if (newframe > drawable.getNumFrames()) { + newframe = 0; + } + } + if (newframe != frame) { + frame = newframe; + drawFrame(); + } + } + private void drawFrame() { if (drawable == null) { return; } - int nframe = percent * (drawable.getNumFrames() - 1) / 100; - if (nframe != frame) { - Matrix mat = new Matrix(); - mat.translateX = swf.displayRect.Xmin; - mat.translateY = swf.displayRect.Ymin; - String key = "drawable_" + nframe + "_" + drawable.hashCode(); - SerializableImage img = SWF.getFromCache(key); - if (img == null) { - if (drawable instanceof BoundedTag) { - BoundedTag bounded = (BoundedTag) drawable; - RECT rect = bounded.getRect(characters, new Stack()); - SerializableImage image = new SerializableImage((int) (rect.getWidth() / SWF.unitDivisor) + 1, - (int) (rect.getHeight() / SWF.unitDivisor) + 1, SerializableImage.TYPE_INT_ARGB); - //Make all pixels transparent - Graphics2D g = (Graphics2D) image.getGraphics(); - g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); - g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); - g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g.setComposite(AlphaComposite.Src); - g.setColor(new Color(0, 0, 0, 0f)); - g.fillRect(0, 0, image.getWidth(), image.getHeight()); - Matrix m = new Matrix(); - m.translate(-rect.Xmin, -rect.Ymin); - drawable.toImage(nframe, nframe, swf.tags, characters, new Stack(), image, m, new ColorTransform()); - img = image; - - } else { - img = drawable.toImage(nframe, nframe, swf.tags, characters, new Stack(), Matrix.getScaleInstance(1 / SWF.unitDivisor), new ColorTransform()); - } - SWF.putToCache(key, img); + Matrix mat = new Matrix(); + mat.translateX = swf.displayRect.Xmin; + mat.translateY = swf.displayRect.Ymin; + String key = "drawable_" + frame + "_" + drawable.hashCode(); + SerializableImage img = SWF.getFromCache(key); + if (img == null) { + if (drawable instanceof BoundedTag) { + BoundedTag bounded = (BoundedTag) drawable; + RECT rect = bounded.getRect(characters, new Stack()); + SerializableImage image = new SerializableImage((int) (rect.getWidth() / SWF.unitDivisor) + 1, + (int) (rect.getHeight() / SWF.unitDivisor) + 1, SerializableImage.TYPE_INT_ARGB); + //Make all pixels transparent + Graphics2D g = (Graphics2D) image.getGraphics(); + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); + g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g.setComposite(AlphaComposite.Src); + g.setColor(new Color(0, 0, 0, 0f)); + g.fillRect(0, 0, image.getWidth(), image.getHeight()); + Matrix m = new Matrix(); + m.translate(-rect.Xmin, -rect.Ymin); + drawable.toImage(frame, frame, swf.tags, characters, new Stack(), image, m, new ColorTransform()); + img = image; + } else if (drawable instanceof FontTag) { + // only DefineFont tags + FontTag fontTag = (FontTag) drawable; + img = fontTag.toImage(frame, frame, swf.tags, characters, new Stack(), Matrix.getScaleInstance(1 / SWF.unitDivisor), new ColorTransform()); } - ImageIcon icon = new ImageIcon(img.getBufferedImage()); - label.setIcon(icon); - frame = nframe; + SWF.putToCache(key, img); + } + ImageIcon icon = new ImageIcon(img.getBufferedImage()); + label.setIcon(icon); + } + + public void stop() { + if (timer != null) { + timer.cancel(); + timer = null; } } @@ -249,21 +270,15 @@ public final class ImagePanel extends JPanel implements ActionListener, FlashDis timer.schedule(new TimerTask() { @Override public void run() { - drawFrame(); - if (percent == 100) { - percent = 0; - } else { - percent++; - } - + nextFrame(); } - }, 0, 20); + }, 0, 1000 / frameRate); } } @Override public void rewind() { - percent = 0; + frame = 0; drawFrame(); } @@ -277,11 +292,7 @@ public final class ImagePanel extends JPanel implements ActionListener, FlashDis @Override public void gotoFrame(int frame) { - if (drawable == null) { - percent = 0; - } else { - percent = frame * 100 / drawable.getNumFrames(); - } + this.frame = frame; drawFrame(); } @@ -290,7 +301,10 @@ public final class ImagePanel extends JPanel implements ActionListener, FlashDis if (drawable == null) { return 1; } - return drawable.getNumFrames() / 2; + if (drawable instanceof MorphShapeTag) { + return drawable.getNumFrames() / morphShapeAnimationLength; + } + return frameRate; } @Override diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/trunk/src/com/jpexs/decompiler/flash/gui/MainPanel.java index 45833f15e..084acfe2f 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -893,6 +893,7 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec public void load(SWFList newSwfs, boolean first) { swfPreviewPanel.stop(); + imagePanel.stop(); swfs.add(newSwfs); @@ -2333,6 +2334,7 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec flashPanel.specialPlayback = false; } swfPreviewPanel.stop(); + imagePanel.stop(); stopFlashPlayer(); if (tagObj instanceof ScriptPack) { final ScriptPack scriptLeaf = (ScriptPack) tagObj; @@ -2542,6 +2544,7 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec } if ((tagObj instanceof DefineMorphShapeTag) || (tagObj instanceof DefineMorphShape2Tag)) { + // this setting should be synchronized with ImagePanel.morphShapeAnimationLength frameCount = 100; frameRate = 50; } diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/SWFPreviewPanel.java b/trunk/src/com/jpexs/decompiler/flash/gui/SWFPreviewPanel.java index a8ca8c94f..8e395dc44 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/SWFPreviewPanel.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/SWFPreviewPanel.java @@ -98,18 +98,24 @@ public class SWFPreviewPanel extends JPanel implements FlashDisplay { timer.schedule(new TimerTask() { @Override public void run() { - int newframe = (frame == swf.frameCount ? 1 : frame + 1); - if (frameImages != null && frameImages.size() >= newframe) { - frame = newframe; - drawFrame(); - pan.setBackground(View.swfBackgroundColor); - } + nextFrame(); } }, 0, 1000 / swf.frameRate); } + private void nextFrame() { + int newframe = frame == swf.frameCount - 1 ? 0 : frame + 1; + if (newframe != frame) { + if (frameImages != null && frameImages.size() > newframe) { + frame = newframe; + drawFrame(); + pan.setBackground(View.swfBackgroundColor); + } + } + } + private void drawFrame() { - pan.setImage(frameImages.get(frame - 1)); + pan.setImage(frameImages.get(frame)); } @Override @@ -135,7 +141,7 @@ public class SWFPreviewPanel extends JPanel implements FlashDisplay { @Override public void rewind() { - frame = 1; + frame = 0; drawFrame(); } diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java b/trunk/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java index 2a9454188..993547465 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java @@ -84,7 +84,7 @@ public class PlayerControls extends JPanel implements ActionListener { progress.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { - int frame = 1 + (int) Math.floor(e.getX() * display.getTotalFrames() / (double) progress.getWidth()); + int frame = (int) Math.floor(e.getX() * display.getTotalFrames() / (double) progress.getWidth()); boolean p = paused; display.gotoFrame(frame); if (!p) { @@ -134,14 +134,14 @@ public class PlayerControls extends JPanel implements ActionListener { if (totalFrames == 0) { progress.setIndeterminate(true); } else { - progress.setMaximum(totalFrames); - progress.setMinimum(1); + progress.setMaximum(totalFrames - 1); + progress.setMinimum(0); progress.setValue(currentFrame); progress.setIndeterminate(false); } if (frameRate != 0) { timeLabel.setText(formatMs((currentFrame * 1000) / frameRate)); - totalTimeLabel.setText(formatMs((totalFrames * 1000) / frameRate)); + totalTimeLabel.setText(formatMs(((totalFrames - 1) * 1000) / frameRate)); } if (totalFrames <= 1 && isVisible()) { setVisible(false); diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java index 39f860a1d..751e5c0d9 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java @@ -252,11 +252,6 @@ public class DefineButton2Tag extends CharacterTag implements Container, Bounded return trackAsMenu; } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { if (visited.contains(buttonId)) { diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java index bb731cdf1..1fa905ed9 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java @@ -273,11 +273,6 @@ public class DefineButtonTag extends CharacterTag implements ASMSource, BoundedT return false; } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { if (visited.contains(buttonId)) { diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java index 1260a8163..1c660fd49 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java @@ -754,11 +754,6 @@ public class DefineEditTextTag extends TextTag { return needed; } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { if (hasText) { diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineMorphShape2Tag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineMorphShape2Tag.java index 1d9d272b2..d429bb98a 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineMorphShape2Tag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineMorphShape2Tag.java @@ -314,11 +314,6 @@ public class DefineMorphShape2Tag extends CharacterTag implements BoundedTag, Mo return shape; } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { SHAPEWITHSTYLE shape = getShapeAtRatio(ratio); diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineMorphShapeTag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineMorphShapeTag.java index f66fe444c..f04173909 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineMorphShapeTag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineMorphShapeTag.java @@ -297,11 +297,6 @@ public class DefineMorphShapeTag extends CharacterTag implements BoundedTag, Mor return shape; } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { SHAPEWITHSTYLE shape = getShapeAtRatio(ratio); diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape2Tag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape2Tag.java index b717d4ec3..d578d24a8 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape2Tag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape2Tag.java @@ -72,11 +72,6 @@ public class DefineShape2Tag extends CharacterTag implements ShapeTag { return exporter.getSVG(); } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { BitmapExporter.exportTo(swf, getShapes(), null, image, transformation, colorTransform); diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape3Tag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape3Tag.java index 215bac15d..957cdaefb 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape3Tag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape3Tag.java @@ -77,11 +77,6 @@ public class DefineShape3Tag extends CharacterTag implements ShapeTag { return exporter.getSVG(); } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { BitmapExporter.exportTo(swf, getShapes(), null, image, transformation, colorTransform); diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape4Tag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape4Tag.java index dab106691..0291e5867 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape4Tag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineShape4Tag.java @@ -80,11 +80,6 @@ public class DefineShape4Tag extends CharacterTag implements ShapeTag { return exporter.getSVG(); } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { BitmapExporter.exportTo(swf, getShapes(), null, image, transformation, colorTransform); diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineShapeTag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineShapeTag.java index da11b1156..e9396ce44 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineShapeTag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineShapeTag.java @@ -105,11 +105,6 @@ public class DefineShapeTag extends CharacterTag implements ShapeTag { return exporter.getSVG(); } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { BitmapExporter.exportTo(swf, getShapes(), null, image, transformation, colorTransform); diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java index d06983763..8197fb262 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java @@ -276,11 +276,6 @@ public class DefineSpriteTag extends CharacterTag implements Container, BoundedT return ret; } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { if (visited.contains(spriteId)) { diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineText2Tag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineText2Tag.java index 7ad45212b..a46091936 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineText2Tag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineText2Tag.java @@ -489,11 +489,6 @@ public class DefineText2Tag extends TextTag { return ret; } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { staticTextToImage(swf, characters, textRecords, 2, image, getTextMatrix(), transformation, colorTransform); diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java b/trunk/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java index f5f6dc7bb..ee1c4eb51 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java @@ -505,11 +505,6 @@ public class DefineTextTag extends TextTag { return ret; } - @Override - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { - throw new Error("this overload of toImage call is not supported on BoundedTag"); - } - @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { staticTextToImage(swf, characters, textRecords, 1, image, getTextMatrix(), transformation, colorTransform); diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/base/DrawableTag.java b/trunk/src/com/jpexs/decompiler/flash/tags/base/DrawableTag.java index 99991573c..70c508543 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/base/DrawableTag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/base/DrawableTag.java @@ -31,8 +31,6 @@ import java.util.Stack; */ public interface DrawableTag { - public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform); - public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform); public Point getImagePos(int frame, Map characters, Stack visited); diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/base/FontTag.java b/trunk/src/com/jpexs/decompiler/flash/tags/base/FontTag.java index b41573a85..b504e141f 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/base/FontTag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/base/FontTag.java @@ -246,14 +246,13 @@ public abstract class FontTag extends CharacterTag implements AloneTag, Drawable return defaultFontName; } - @Override public SerializableImage toImage(int frame, int ratio, List tags, Map characters, Stack visited, Matrix transformation, ColorTransform colorTransform) { return SHAPERECORD.shapeListToImage(swf, getGlyphShapeTable(), 500, 500, Color.black, colorTransform); } @Override public void toImage(int frame, int ratio, List tags, Map characters, Stack visited, SerializableImage image, Matrix transformation, ColorTransform colorTransform) { - + throw new Error("this overload of toImage call is not supported on FontTag"); } @Override