您的位置 首页 java

Java压缩图片错误——蒙上一层红色

1 起源

生产问题——现场运维反馈安卓客户端从文件服务器获取的压缩后的商品图片存在失真,属于偶现问题。

2 排查思路

(1)查看算法逻辑,没看出问题。

(2)百度,关键词: Java 图片失真,看了很多博客都说是ImageIO和BufferedImage以及API参数的问题,比如加上参数 BufferedImage.SCALE_SMOOTH:

graph.drawImage(cropedImage.getScaledInstance(targetW, targetH, 
BufferedImage.SCALE_SMOOTH), 0, 0, Color.white,null);
 

试过后,没有用,进一步查看JDK官方与图片相关的API,没有提到特别的注意事项。

(3)google、Stack Overflow

提到是JDK的bug,但是在oracle官网提到图片失真是JDK1.4的bug,但是1.6已结修复了,而项目中用到的是JDK1.7.

(4)百度,关键词:Java 压缩 图片后 表面变成红色

参考链接:

根据文章内容,顺利解决。

3 总结

(1)搜索引擎使用

经过前后对比可以看到,准确描述问题的重要性。

(2)错误总结

只要使用 ImageIO.read 就可能存在图片蒙上红色的情况,原因是拍摄图片的设备问题,比如摄像机拍摄就可能存在该问题,手机可能就没有。

文章来源:智云一二三科技

文章标题:Java压缩图片错误——蒙上一层红色

文章地址:https://www.zhihuclub.com/192045.shtml

关于作者: 智云科技

热门文章

网站地图