代码之家  ›  专栏  ›  技术社区  ›  Densaugeo

如何使用python枕头裁剪/模糊.png,而不更改其他内容

  •  0
  • Densaugeo  · 技术社区  · 2 年前

    我在这里找到了几个有用的帖子,解释了如何使用Python的Pillow库裁剪图像,但用Pillow裁剪.png会扭曲颜色并使图片变暗。我使用.png是因为我想避免图像在处理过程中失真。

    当我运行一个甚至不进行任何裁剪的伪脚本时:

    from PIL import Image
    
    with Image.open('test.png') as image:
        image.save('test copy.png')
    

    如果在照片查看器中在它们之间切换,则生成的副本的文件大小比原始副本小约30%,并且明显更暗。如何让Pillow裁剪图片,但不考虑颜色?我还想对局部模糊做同样的处理(用于匿名化),在一个区域应用模糊,而不改变图像的其余部分。

    编辑:上传.png文件和褪色的副本到 https://github.com/Densaugeo/stack-overflow-question/tree/main

    0 回复  |  直到 2 年前
        1
  •  2
  •   Mark Adler    2 年前

    你的test.png文件有一个 gAMA 值为50994的chunk,但您的输出文件没有。他们还需要这个块来渲染相同的颜色。

        2
  •  1
  •   Mark Setchell    2 年前

    值得称赞,并为@MarkAdler侦查缺乏gAMA区块而投票。以下是一种将gAMA从一个文件转发到另一个文件的方法,使用 exiftool :

    exiftool -tagsfromfile goodImage.png -gamma brokenImage.png
    

    您可能可以在Python中通过调整 this 答复


    Here 是使用的另一种方法 pngcheck pngcrush