相关疑难解决方法(0)

如何使用PIL将透明png图像与另一个图像合并

我有一个透明的png图像"foo.png",我打开了另一个图像

im = Image.open("foo2.png");
Run Code Online (Sandbox Code Playgroud)

现在我需要的是将foo.png与foo2.png合并.

(foo.png包含一些文本,我想在foo2.png上打印该文本)

python image image-processing python-imaging-library

138
推荐指数
4
解决办法
10万
查看次数

使用PIL修剪空白

是否有一个简单的解决方案来修剪PIL中的图像空白?

ImageMagick通过以下方式轻松支持它:

convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg
Run Code Online (Sandbox Code Playgroud)

我找到了PIL的解决方案:

from PIL import Image, ImageChops

def trim(im, border):
    bg = Image.new(im.mode, im.size, border)
    diff = ImageChops.difference(im, bg)
    bbox = diff.getbbox()
    if bbox:
        return im.crop(bbox)
Run Code Online (Sandbox Code Playgroud)

但是这个解决方案有缺点:

  1. 我需要定义border颜色,这对我来说不是什么大问题,我的图像有白色背景
  2. 最不利的是,这个PIL解决方案不支持ImageMagick的-fuzz密钥.添加一些模糊裁剪.因为我可以有一些jpeg压缩工件和不需要的巨大阴影.

可能PIL有一些内置的功能吗?还是有一些快速解决方案?

python imagemagick python-imaging-library

47
推荐指数
2
解决办法
2万
查看次数