欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java 中的 Image 实例转成 BufferedImage 实例,imagebufferedimage,public stati

来源: javaer 分享于  点击 7025 次 点评:16

Java 中的 Image 实例转成 BufferedImage 实例,imagebufferedimage,public stati


public static void main(String[] args) throws IOException{    Image img = Toolkit.getDefaultToolkit().getImage("C:\\google.jpg");    BufferedImage bi_scale = toBufferedImage(img);    ImageIO.write(bi_scale, "jpg",new File("C:\\2.jpg"));}public static BufferedImage toBufferedImage(Image image) {    if (image instanceof BufferedImage) {        return (BufferedImage)image;     }    // This code ensures that all the pixels in the image are loaded     image = new ImageIcon(image).getImage();    // Determine if the image has transparent pixels; for this method's    // implementation, see e661 Determining If an Image Has Transparent Pixels    //boolean hasAlpha = hasAlpha(image);    // Create a buffered image with a format that's compatible with the screen     BufferedImage bimage = null;     GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();    try {        // Determine the type of transparency of the new buffered image        int transparency = Transparency.OPAQUE;       /* if (hasAlpha) {         transparency = Transparency.BITMASK;         }*/        // Create the buffered image         GraphicsDevice gs = ge.getDefaultScreenDevice();         GraphicsConfiguration gc = gs.getDefaultConfiguration();         bimage = gc.createCompatibleImage(         image.getWidth(null), image.getHeight(null), transparency);     } catch (HeadlessException e) {        // The system does not have a screen     }    if (bimage == null) {        // Create a buffered image using the default color model        int type = BufferedImage.TYPE_INT_RGB;        //int type = BufferedImage.TYPE_3BYTE_BGR;//by wang        /*if (hasAlpha) {         type = BufferedImage.TYPE_INT_ARGB;         }*/         bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type);     }    // Copy image to buffered image     Graphics g = bimage.createGraphics();    // Paint the image onto the buffered image     g.drawImage(image, 0, 0, null);     g.dispose();    return bimage;}
相关栏目:

用户点评