我正在编写一个程序来读取一些文本文件并使用libjpeg将其写入 JPEG 文件。当我将质量设置为 100(带有jpeg_set_quality
)时,灰度实际上没有质量下降。但是,当我转向 RGB 时,即使质量为 100,似乎也有压缩。
当我将此输入转换为灰度 JPEG 图像时,它可以很好地工作并给我一个干净的 JPEG 图像:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 255 0 0 0
255 0 0 0 0
(水平翻转)输出为:
现在,当我假设数组是红色时,分别使用以下两个数组作为绿色和蓝色:
0 0 0 0 0
0 0 0 0 0
0 0 255 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 255
0 0 0 255 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
这是我得到的颜色输出:
虽然只有 5 个输入像素具有任何颜色值,但周围的像素在转换为颜色时也得到了一个值。对于灰度图像和 RGB 图像,质量都设置为 100。
我想看看是什么原因造成的,以及如何修复它,这样颜色也只用于实际具有输入值的像素?