Java 中的 Image 实例转成 BufferedImage 实例详解编程语言

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; 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/10530.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论