使用 Python 图像库进行高级裁剪

Advanced cropping with Python Imaging Library

我有一个 A4 png 图像,里面有一些文字,它是透明的,我的问题是,我如何裁剪图像以只包含文本,我知道 PIL 中的裁剪,但是如果我将它设置为固定值,它将无法裁剪在另一个地方有该文本的另一个图像。那么,我该怎么做才能找到文本、贴纸或任何其他东西放置在那张大而空的图像上的位置,并裁剪它以使其完美贴合?

提前致谢!

您可以通过提取 alpha 通道并对其进行裁剪来实现。因此,如果这是您的输入图像:

它又出现了,较小,在棋盘背景上,因此您可以看到它的完整范围:

代码如下所示:

#!/usr/bin/env python3

from PIL import Image

# Load image
im = Image.open('image.png')

# Extract alpha channel as new Image and get its bounding box
alpha = im.getchannel('A')
bbox  = alpha.getbbox()

# Apply bounding box to original image
res = im.crop(bbox)
res.save('result.png')

结果如下:

再次在棋盘图案上,以便您可以看到它的完整范围:

关键字:图像处理,Python,PIL/Pillow,trim 到 alpha,裁剪到 alpha,trim 到透明度,裁剪为透明度。