首页 > 解决方案 > PIL 替代保存/覆盖像素?

问题描述

我正在使用 Python3,但我对它还不是很有经验。我想在 jpg 和 png 文件中更改具有某种颜色的像素。这已经与 PIL / Image 完美配合。

im = self.open_image(‘myPicture’)
im.putpixel((x, y), (r, g, b))

但是,我想在原始图像(或它的 1:1 副本)中直接(二进制)覆盖这些更改,而不是将整个图像保存为 jpg 或 png。

更像这样的东西:

f = open(‘myPicture’, “wb")
f.write(...)

… 代替:

im.save(‘myPicture’, "PNG")

这样做的原因是我想让图像的其余部分保持不变,这意味着不压缩 (jpg) 或更改文件大小。我只想为某些像素替换一些 RGB 值。

最好的方法是什么?如何找到 jpg 或 png 文件中像素数据开始的文件偏移量?它们是否以与我的图像对象(im)相同的格式(按顺序)保存在那里。

谢谢你的帮助!

标签: python-3.ximagepython-imaging-library

解决方案


推荐阅读