mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-12 02:02:16 +10:00
Image fixes
This commit is contained in:
+9
-13
@@ -2,15 +2,11 @@ package org.diylc.components.misc;
|
|||||||
|
|
||||||
import java.awt.Image;
|
import java.awt.Image;
|
||||||
import java.awt.Toolkit;
|
import java.awt.Toolkit;
|
||||||
import java.awt.image.BufferedImage;
|
|
||||||
import java.awt.image.ColorModel;
|
import java.awt.image.ColorModel;
|
||||||
import java.awt.image.ImageObserver;
|
import java.awt.image.ImageObserver;
|
||||||
import java.awt.image.MemoryImageSource;
|
import java.awt.image.MemoryImageSource;
|
||||||
import java.awt.image.PixelGrabber;
|
import java.awt.image.PixelGrabber;
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
@@ -83,15 +79,15 @@ public class IconImageConverter implements Converter {
|
|||||||
Image image = toolkit.createImage(new MemoryImageSource(width, height, colorModel, pixels,
|
Image image = toolkit.createImage(new MemoryImageSource(width, height, colorModel, pixels,
|
||||||
0, width));
|
0, width));
|
||||||
|
|
||||||
BufferedImage bimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
// BufferedImage bimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
||||||
bimg.setRGB(0, 0, width, height, pixels, 0, width);
|
// bimg.setRGB(0, 0, width, height, pixels, 0, width);
|
||||||
File outputfile = new File("c:\\saved.png");
|
// File outputfile = new File("c:\\saved.png");
|
||||||
try {
|
// try {
|
||||||
ImageIO.write(bimg, "png", outputfile);
|
// ImageIO.write(bimg, "png", outputfile);
|
||||||
} catch (IOException e) {
|
// } catch (IOException e) {
|
||||||
// TODO Auto-generated catch block
|
// // TODO Auto-generated catch block
|
||||||
e.printStackTrace();
|
// e.printStackTrace();
|
||||||
}
|
// }
|
||||||
return new ImageIcon(image);
|
return new ImageIcon(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+14
-11
@@ -5,6 +5,7 @@ import java.awt.Composite;
|
|||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.awt.Shape;
|
import java.awt.Shape;
|
||||||
|
import java.awt.geom.Rectangle2D;
|
||||||
|
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
|
|
||||||
@@ -42,29 +43,31 @@ public class Image extends AbstractTransparentComponent<Void> {
|
|||||||
private byte scale = 50;
|
private byte scale = 50;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode,
|
public void draw(Graphics2D g2d, ComponentState componentState,
|
||||||
Project project, IDrawingObserver drawingObserver) {
|
boolean outlineMode, Project project,
|
||||||
|
IDrawingObserver drawingObserver) {
|
||||||
double s = 1d * scale / DEFAULT_SCALE;
|
double s = 1d * scale / DEFAULT_SCALE;
|
||||||
Point endPoint = new Point((int) (image.getIconWidth() * s),
|
Shape clip = g2d.getClip().getBounds();
|
||||||
(int) (image.getIconHeight() * s));
|
if (!clip.intersects(new Rectangle2D.Double(point.getX(), point.getY(),
|
||||||
Shape clip = g2d.getClip();
|
image.getIconWidth() * s, image.getIconHeight() * s))) {
|
||||||
if (!clip.contains(point) && !clip.contains(endPoint)
|
System.console().writer().print("escape");
|
||||||
&& !clip.contains(point.x, endPoint.y) && !clip.contains(endPoint.x, point.y)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Composite oldComposite = g2d.getComposite();
|
Composite oldComposite = g2d.getComposite();
|
||||||
if (alpha < MAX_ALPHA) {
|
if (alpha < MAX_ALPHA) {
|
||||||
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha
|
g2d.setComposite(AlphaComposite.getInstance(
|
||||||
/ MAX_ALPHA));
|
AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA));
|
||||||
}
|
}
|
||||||
|
|
||||||
g2d.scale(s, s);
|
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) {
|
if (componentState == ComponentState.SELECTED) {
|
||||||
g2d.setComposite(oldComposite);
|
g2d.setComposite(oldComposite);
|
||||||
g2d.scale(1 / s, 1 / s);
|
g2d.scale(1 / s, 1 / s);
|
||||||
g2d.setColor(SELECTION_COLOR);
|
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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user