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

Posted King-D

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java操作图片为啥改了图片以后底片是红色的相关的知识,希望对你有一定的参考价值。

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

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

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

 

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

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

 

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

 

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

以上是关于java操作图片为啥改了图片以后底片是红色的的主要内容,如果未能解决你的问题,请参考以下文章

SVN使用时常常出现红色标记的,更新也是正常的,为啥会这样?怎么解决?

Java处理某些图片红色问题

java类 图片导入到excel 模糊 就是图片被盖上了一层红色

如何改变图片大小?

什么软件有红色箭头?

opencv之颜色过滤只留下图片中的红色区域