【问题标题】:Advanced cropping with Python Imaging Library使用 Python 图像库进行高级裁剪
【发布时间】:2020-11-22 21:55:54
【问题描述】:

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

提前致谢!

【问题讨论】:

  • 我的回答解决了你的问题吗?如果是这样,请考虑接受它作为您的答案 - 通过单击计票旁边的空心对勾/复选标记。如果没有,请说出什么不起作用,以便我或其他人可以进一步帮助您。谢谢。 meta.stackexchange.com/questions/5234/…

标签: python image python-imaging-library png crop


【解决方案1】:

您可以通过提取 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、修剪为 Alpha、裁剪为 Alpha、裁剪为透明度、裁剪为透明度。

【讨论】:

    猜你喜欢
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    相关资源
    最近更新 更多