加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java 中的 Image 实例转成 BufferedImage 实例

发布时间:2020-12-15 03:18:12 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 public static void main(String[] args) throws IOException{ Image img = Toolkit.getDefaultToolkit().getImage("C:google.jpg"); BufferedImage

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

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),type);
     }
 
    // Copy image to buffered image
     Graphics g = bimage.createGraphics();
 
    // Paint the image onto the buffered image
     g.drawImage(image,null);
     g.dispose();
 
    return bimage;
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读