我正在尝试制作一个编码/解码图像的程序。
想法:加载 - >编码/解码 - >保存
运行编码和解码算法后,图像会出现错位的像素 和颜色损失。
我可以确保您的编码/解码算法正常运行 解码后,每个像素都被放入保存准确位置,就像编码之前一样。
然后我运行我的程序而没有编码/解码功能。它只打开文件然后保存。
import java.awt.image.BufferedImage;
private BufferedImage img;
img = ImageIO.read(inputFile);
ImageIO.write(img, format, outputFile);
这是测试输入图像:
和相应的输出:
第5列女巫纯红色变成深棕色,橙色变成深橙色......等 红色附近的颜色影响最大 然后我再次运行我的程序,但这次我添加了这个:
//4 because red was in the 5th column
System.out.println(img.getRGB(4, 4));
我得到了值为
的整数 -1237980
如果我理解正确,那么返回应该更像
167116..
这意味着在read()期间发生错误?我能做些什么呢?我该如何避免这种情况?
你能建议其他一些图书馆来做这项工作吗?
是的,我尝试了不同的格式,颜色丢失仍然存在,并且有一些更大的图像像素 发生错位(不是因为编码/解码)。