java - 在 Java 中从 PNG 到 JPG 的转换将白色变为红色

标签 java image io

<分区>

在使用

转换图像时
UploadedFile uf; //as a paremeter in function; PrimeFaces Object;
BufferedImage old = ImageIO.read(uf.getInputstream());
ByteArrayOutputStream temp = new ByteArrayOutputStream();
ImageIO.write(old, "jpg", temp);

白色变成红色..

http://www.primefaces.org/showcase/ui/file/upload/basic.xhtml

效果如下:

before after

你知道如何处理这个问题吗? 提前感谢您的帮助:)

最佳答案

问题是 PNG 文件中的 alpha channel ,它在 JPG 文件中不存在。因此,alpha channel 正在替换输出中的红/绿/蓝 channel 之一,并且颜色是错误的。 您可以在此处找到如何正确执行此操作的示例:http://www.mkyong.com/java/convert-png-to-jpeg-image-file-in-java/

关于java - 在 Java 中从 PNG 到 JPG 的转换将白色变为红色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31914307/

相关文章:

jquery - 如何从src属性获取图像数据?

python - 读/写一个文件,其中每一行都是一个字典的列表

c# - 使用正则表达式定位多个嵌套的 If 语句

java - Tomcat 中的多个 Web 应用程序

java - 在屏幕上显示时删除 pdf 文件的安全方法

javascript - 在 Javascript 中读取/写入文件 - IE6

java - 清除文本文件内容的更干净的方法

java - ActiveMQ,代理接收要发送的消息的时间戳

linux - 将DICOM图像转换为PNG的最简单方法是什么?

c++ - 在 C++ 中处理 16 bpp tiff 文件