From 2001015f9e1f143d6f8258dd54e1d86722f2ac14 Mon Sep 17 00:00:00 2001 From: bancika Date: Wed, 22 Aug 2012 13:19:44 +0000 Subject: [PATCH] Image fixes --- .../components/misc/IconImageConverter.java | 22 +++++++--------- .../src/org/diylc/components/misc/Image.java | 25 +++++++++++-------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/IconImageConverter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/IconImageConverter.java index 6df78527..72758ef2 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/IconImageConverter.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/IconImageConverter.java @@ -2,15 +2,11 @@ package org.diylc.components.misc; import java.awt.Image; import java.awt.Toolkit; -import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.ImageObserver; import java.awt.image.MemoryImageSource; import java.awt.image.PixelGrabber; -import java.io.File; -import java.io.IOException; -import javax.imageio.ImageIO; import javax.swing.ImageIcon; import org.apache.log4j.Logger; @@ -83,15 +79,15 @@ public class IconImageConverter implements Converter { Image image = toolkit.createImage(new MemoryImageSource(width, height, colorModel, pixels, 0, width)); - BufferedImage bimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - bimg.setRGB(0, 0, width, height, pixels, 0, width); - File outputfile = new File("c:\\saved.png"); - try { - ImageIO.write(bimg, "png", outputfile); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } +// BufferedImage bimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); +// bimg.setRGB(0, 0, width, height, pixels, 0, width); +// File outputfile = new File("c:\\saved.png"); +// try { +// ImageIO.write(bimg, "png", outputfile); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } return new ImageIcon(image); } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java index 297d76f5..a0634823 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java @@ -5,6 +5,7 @@ import java.awt.Composite; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Shape; +import java.awt.geom.Rectangle2D; import javax.swing.ImageIcon; @@ -42,29 +43,31 @@ public class Image extends AbstractTransparentComponent { private byte scale = 50; @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { + public void draw(Graphics2D g2d, ComponentState componentState, + boolean outlineMode, Project project, + IDrawingObserver drawingObserver) { double s = 1d * scale / DEFAULT_SCALE; - Point endPoint = new Point((int) (image.getIconWidth() * s), - (int) (image.getIconHeight() * s)); - Shape clip = g2d.getClip(); - if (!clip.contains(point) && !clip.contains(endPoint) - && !clip.contains(point.x, endPoint.y) && !clip.contains(endPoint.x, point.y)) { + Shape clip = g2d.getClip().getBounds(); + if (!clip.intersects(new Rectangle2D.Double(point.getX(), point.getY(), + image.getIconWidth() * s, image.getIconHeight() * s))) { + System.console().writer().print("escape"); return; } Composite oldComposite = g2d.getComposite(); if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); + g2d.setComposite(AlphaComposite.getInstance( + AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); } g2d.scale(s, s); - g2d.drawImage(image.getImage(), (int) (point.x / s), (int) (point.y / s), null); + g2d.drawImage(image.getImage(), (int) (point.x / s), + (int) (point.y / s), null); if (componentState == ComponentState.SELECTED) { g2d.setComposite(oldComposite); g2d.scale(1 / s, 1 / s); g2d.setColor(SELECTION_COLOR); - g2d.drawRect(point.x, point.y, endPoint.x, endPoint.y); + g2d.drawRect(point.x, point.y, (int) (image.getIconWidth() * s), + (int) (image.getIconHeight() * s)); } }