【问题标题】:How to crop from one image and paste into another with PIL?如何从一张图像中裁剪并使用 PIL 粘贴到另一张图像中?
【发布时间】:2011-08-09 01:35:48
【问题描述】:

使用 PIL,我试图从图像中复制一个矩形,然后将其粘贴到另一个图像中。这是我的代码:

import Image
ii = Image.open("ramza.png")
box = (70, 70, 30, 30)
region = ii.crop(box)
io = Image.open("template.png")
io.paste(region, box)
io.save("output.png")

我收到了这个错误:

ValueError: 图片不匹配

你们中有人知道解决这个问题的方法吗?

【问题讨论】:

    标签: python python-imaging-library paste crop


    【解决方案1】:

    PIL 裁剪框定义为 4 元组像素坐标:(left, upper, right, lower)

    修复您的代码以获得 30x30 的裁剪:

    box = (70, 70, 100, 100)
    

    分解成组件:

    x, y, w, h = (70, 70, 30, 30)
    box = (x, y, x + w, y + h)
    

    【讨论】:

      【解决方案2】:

      对于未来的访问者:如果 pastebox 参数包含 floats 而不是 ints,也可能会出现此错误。

      【讨论】:

      • 谢谢,这是最严重的故障——间歇性故障!大多数时候paste 可以很好地使用浮点数,但偶尔它不会..
      猜你喜欢
      • 2018-12-11
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多