如何将JPG尺寸无损地调整(缩小)一半

时间:2017-02-25 14:42:47

标签: jpeg image-resizing

我有一个分辨率为1440x720的大JPG文件。这个大小可以分为16,8,4,2。我的MCU块是16x16。我想将这个图像缩小两次,为720x360。有什么办法,如何在不失去质量的情况下实现这一目标(除了在调整大小期间丢失像素)?

我正在寻找某种命令行工具来做到这一点。到目前为止,我找到了jpegtran,但在-scale之后,图片无法读取。 jpegtran对此有一个警告:

  

注意:JPEG SmartScale扩展的实现是   此功能需要。支持SmartScale的JPEG尚未广泛使用   实施后,许多解码器将无法查看SmartScale   完全扩展JPEG文件。

还有其他工具或其他方法吗?

1 个答案:

答案 0 :(得分:2)

不幸的是没有,但好的新事是没关系。

JPEG创建8x8和16x16块,并通过忽略高频变化来压缩它们。因此,如果丢掉一半的像素,那么16x16的块就会变成8x8而32x32就会变成16x16。然后你再次压缩它们,你会失去一点质量,因为块之间的边缘会产生高频,这会被截断。

但是只要JPEG被设置为合理的质量水平,你几乎不会注意到质量的损失,除非你在某处进行逐位比较。

(资源编译器中有一个JPEG编解码器,因此您可以通过摆弄量化表中的系数将质量等级设置为您想要的任何值。)

https://github.com/MalcolmMcLean/babyxrc/blob/master/src/savejpeg.c