Qt - 将JPEG转换为PNG而不提供相同的图像

时间:2017-05-11 11:53:03

标签: c++ image qt png jpeg

我想将jpeg图像转换为png并且这样做我使用下面的代码:

  QImageReader reader;
  reader.setFileName(imagePath);

  QImage image = reader.read();

  QImageWriter writer;
  writer.setFileName(newImagePath);
  writer.write(image);

我认为输出图像与输入图像完全相同,但差异图像不是空的,我无法弄清楚原因。差异图像看起来像噪声图像,其值范围为-5到6.

我尝试用另一个名为VTK的librairy做同样的事情,但我没有同样的问题,压缩前后的图像完全一样。

欢迎任何建议!

1 个答案:

答案 0 :(得分:0)

不同的JPEG解码器可以产生略微不同的RGB值 (如果JPEG包含ICC配置文件,则更多);有很多数值舍入和转换(但是,编码器应该在参考实现中每像素不超过一位,但我不打赌;参见例如this回答和{{3一个)。

我建议你尝试在QImage中进行逐像素比较。