java操作图片为啥改了图片以后底片是红色的

之前项目上线上传的两张png格式的图片。

后来因需求变更 需要修改 图片,想着只需要修改图片的名称直接替换掉就可以了

但是实际出来的效果确是 替换后的图片呈现泛红的状态。

找了一下原因是用 java 代码操作图片的时候 png 的格式输入,jpg的格式输出。

那么问题来了 为什么之前的图片没有问题 而后面替换的图片会泛红?

百思不得其解,百度也没搜到原因。最后在仔细对比图片属性才发现  图片还有个位深度属性。原本的位深度是24,替换的位深度是32,让设计用ps修改了位深度以后,就不会出现泛红的问题了。当然 根本原因还是前后格式不同。

位深度是指在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深度来表示的。计算机之所以能够显示颜色,是采用了一种称作“位”( bit ) 的记数单位来记录所表示颜色的数据。当这些数据按照一定的编排方式被记录在计算机中,就构成了一个数字图像的计算机文件。“位”( bit )是计算机存储器里的最小单元,它用来记录每一个像素颜色的值。图像的色彩越丰富,“位”就越多。每一个像素在计算机中所使用的这种位数就是“位深度”。

原文地址:https://www.cnblogs.com/qingmuchuanqi48/p/13055216.html