Java读取png图片保存为jpg时图像变红的问题。

在做一个Web的时候,上传图片,因为png的图片体积太大,所以上传到服务器保存成jpg即可,节省空间。
但是有些png图片保存的时候会变色

如图
傲游截图201410241800538
之前的图像
0d407abeef874be1e10283bd69297a29
保存之后
用Photoshop打开变色的图片,查看通道
cmykcolor
RGB色彩模式变成了CMYK
个人猜测,因为PNG图片包含了一个Alpha(透明)通道,一共四个通道,jpg不支持Alpha通道,所以导致了这个现象,细节要看算法,研究不深,就不分析了,下面给出解决方法:

使用Toolkit打开图像,createImage有几个重载函数请按需选择,最后输出BufferedImage就是正常色彩。

发表评论