Revision 1846 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/DefaultSimpleImage.java
DefaultSimpleImage.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.awt.Graphics2D; |
4 | 4 |
import java.awt.Image; |
5 |
import java.awt.MediaTracker; |
|
5 | 6 |
import java.awt.RenderingHints; |
6 | 7 |
import java.awt.geom.AffineTransform; |
7 | 8 |
import java.awt.image.BufferedImage; |
... | ... | |
12 | 13 |
import java.io.InputStream; |
13 | 14 |
import java.net.URL; |
14 | 15 |
import javax.imageio.ImageIO; |
16 |
import javax.swing.ImageIcon; |
|
15 | 17 |
import org.apache.commons.codec.DecoderException; |
16 | 18 |
import org.apache.commons.codec.binary.Base64; |
17 | 19 |
import org.apache.commons.codec.binary.Hex; |
... | ... | |
26 | 28 |
|
27 | 29 |
BufferedImage image = null; |
28 | 30 |
|
31 |
public static BufferedImage toBufferedImage(Image img) { |
|
32 |
if (img instanceof BufferedImage) { |
|
33 |
return (BufferedImage) img; |
|
34 |
} |
|
35 |
// Create a buffered image with transparency |
|
36 |
BufferedImage bimage = new BufferedImage( |
|
37 |
img.getWidth(null), |
|
38 |
img.getHeight(null), |
|
39 |
BufferedImage.TYPE_INT_ARGB |
|
40 |
); |
|
41 |
// Draw the image on to the buffered image |
|
42 |
Graphics2D bGr = bimage.createGraphics(); |
|
43 |
bGr.drawImage(img, 0, 0, null); |
|
44 |
bGr.dispose(); |
|
45 |
return bimage; |
|
46 |
} |
|
47 |
|
|
29 | 48 |
public DefaultSimpleImage() { |
30 | 49 |
} |
31 | 50 |
|
... | ... | |
58 | 77 |
try { |
59 | 78 |
if (source instanceof BufferedImage) { |
60 | 79 |
return (BufferedImage) source; |
80 |
|
|
81 |
} else if (source instanceof ImageIcon ) { |
|
82 |
ImageIcon icon = (ImageIcon)source; |
|
83 |
int loadStatus = icon.getImageLoadStatus(); |
|
84 |
if( loadStatus != MediaTracker.COMPLETE ) { |
|
85 |
icon.getDescription(); |
|
86 |
} |
|
87 |
return toBufferedImage(icon.getImage()); |
|
88 |
|
|
61 | 89 |
} else if (source instanceof Image) { |
62 |
return null; |
|
90 |
return toBufferedImage((Image) source); |
|
91 |
|
|
63 | 92 |
} else if (source instanceof byte[]) { |
64 | 93 |
ByteArrayInputStream is = new ByteArrayInputStream((byte[]) source); |
65 | 94 |
theImage = ImageIO.read(is); |
95 |
|
|
66 | 96 |
} else if (source instanceof File) { |
67 | 97 |
theImage = ImageIO.read((File) source); |
98 |
|
|
68 | 99 |
} else if (source instanceof URL) { |
69 | 100 |
theImage = ImageIO.read((URL) source); |
101 |
|
|
70 | 102 |
} else if (source instanceof String) { |
71 | 103 |
InputStream is; |
72 | 104 |
String s = (String) source; |
Also available in: Unified diff