我想将 jpeg 图像转换为 png 并为此使用以下代码:
QImageReader reader;
reader.setFileName(imagePath);
QImage image = reader.read();
QImageWriter writer;
writer.setFileName(newImagePath);
writer.write(image);
我认为输出图像与输入图像完全相同,但差异图像不为空,我不明白为什么。差异图像看起来像噪声图像,其值范围为 -5 到 6。
我尝试用另一个名为 VTK 的库做同样的事情,但我没有遇到同样的问题,压缩前后的图像完全相同。
欢迎任何建议!
最佳答案
不同的 JPEG 解码器可以产生略有不同的 RGB 值 (如果 JPEG 包含 ICC 配置文件则更是如此);涉及很多数值舍入和转换(但是,编码器与引用实现的每像素差异应该不超过一位,但我不会打赌;参见例如 this 答案和 this 一个) .
我建议你尝试在 QImage 中进行逐像素比较。
关于c++ - Qt - 将 JPEG 转换为 PNG 不提供相同的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43914667/