我有一个关于JPEG文件写入的问题。假设我有一个PNG文件example.png,我想将文件格式更改为JPEG而不丢失任何信息。目前,我有两个解决方案:
解决方案1:使用MATLAB执行文件格式转换
I = imread('example.png');
imwrite(I,'example.jpg','Mode','lossless');
II = imread('example.jpg');
differ = I-II;
max(differ(:))
这个解决方案可以产生无损的JPEG文件。然而,这个解决方案的问题在于原始图像中的一些信息,例如DPI分辨率可能会丢失。此外,生成的输出图像不能被流行的图像查看器(如IrfanView和Windows Paint)查看。
解决方案2:使用IrfanView软件。 使用IrfanView程序的“另存为”功能,我们可以非常容易地更改文件格式。然而,尽管我在保存JPEG文件时设置了“最佳质量100”的选项,输出图像仍然显示一些信息丢失。这两个图像之间的差异并非所有像素都为零。
因此,我想知道应该怎么做才能解决这个问题。任何想法都将不胜感激。