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

View differences:

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