【问题标题】:Re-coding Select JPEG Blocks with Pillow / PIL使用 Pillow / PIL 重新编码选择 JPEG 块
【发布时间】:2015-04-15 22:13:40
【问题描述】:

PIL / Pillow 中是否有某种方式可以打开 JPEG 文件,修改图像的一部分,然后将图像保存回 JPEG,其中只有修改过的块被重新编码?

有支持此功能的库:https://en.wikipedia.org/wiki/JPEG#Lossless_editing

【问题讨论】:

    标签: jpeg python-imaging-library pillow


    【解决方案1】:

    你所描述的是不可能的。 JPEG 在称为 MCU 的组中进行编码,这些组由一个或多个 8x8 数据块组成。您必须沿数据块或 MCU 边界进行编码。

    另一个问题是 DC 系数(来自 DC 的 [0,0] 系数)被一起编码。更改一个意味着您需要更改所有后续。

    【讨论】:

    • 这是我指的技术:betterjpeg.com/jpeg-plug-in.htm.
    • 他们必须对其他块进行一些接触。通过在重新压缩时使用相同的量化表和采样,您可以获得几乎相同的效果。
    • 1.是的,您可以使用相同的表格。 2. JPEG 允许定义多个量化和 Huffman 表,因此您可以修改标题并添加新表(如果这是最佳的)。无论哪种方式,不重新编码未触及的阻塞是可能的,所以我的问题是:这在 PIL 中是否可能。
    • 不,你会从源文件中读取量化表采样,然后在重新压缩时使用它们。您可以更改霍夫曼表而没有效果。您仍在“重新压缩”数据,但变化不大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 2014-06-15
    相关资源
    最近更新 更多