ImageIO.read()方法读取图片后重写,图片蒙上一层红色的解决办法(上)

编程入门 行业动态 更新时间:2024-10-26 08:31:12

ImageIO.read()方法读取<a href=https://www.elefans.com/category/jswz/34/1770705.html style=图片后重写,图片蒙上一层红色的解决办法(上)"/>

ImageIO.read()方法读取图片后重写,图片蒙上一层红色的解决办法(上)

1.在项目中为了处理用户上传的图片,会对图片进行重写处理,故使用了类似下面的代码:

		File src = new File("e:/img/google.jpg");BufferedImage bi = (BufferedImage)ImageIO.read(src);BufferedImage bi_scale = new BufferedImage(bi.getWidth(), bi.getHeight(), BufferedImage.TYPE_INT_RGB );Graphics2D g = bi_scale.createGraphics();g.drawImage( bi, 0, 0, bi.getWidth(), bi.getHeight(), null );g.dispose();FileOutputStream fos = new FileOutputStream("e:/img/google2.jpg");ImageIO.write(bi_scale, "jpg", fos);fos.close();

原图如下:

但发现对于CMYK模式的图片ImageIO.read方法在读取时,会丢失掉ICC信息,从面导致重写后的图片上面蒙受上一层红色如下:


显然对图片质量的影响非常大,在用户体验非常高的互联网上是没法让用户接受的,于是又改用另外一种获取Image对象的方法如下࿱

更多推荐

ImageIO.read()方法读取图片后重写,图片蒙上一层红色的解决办法(上)

本文发布于:2024-03-05 20:36:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1713351.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图片   重写   解决办法   红色   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!