【问题标题】:Python Pillow ValueError: images do not matchPython Pillow ValueError:图像不匹配
【发布时间】:2022-08-07 21:49:29
【问题描述】:

我目前正在编写一个脚本,将图像粘贴到另一个上以随机生成像素字符。随机代码已经完成,我开始创建图片。现在我面临着最早的问题。当我尝试这段代码时:

from PIL import Image

basebg = Image.open(\"./among us assets/BaseBackground.png\").convert(\"RGBA\")
img1 = Image.open(\"./among us assets/charmodels/character1.png\").convert(\"RGBA\")

print(basebg.size)
print(basebg.mode)
print(img1.size)
print(img1.mode)

# intermediate = Image.alpha_composite(basebg, img1)

basebg.paste(img1, (0, 0, 0, 0))

发生错误:

Traceback (most recent call last): <br>
  File \"c:\\[...]\\blabla.py\", line 67, in <module> <br>
    basebg.paste(img1, (0, 0, 0, 0)) <br>
  File \"[...]\\Image.py\", line 1527, in paste <br>
    self.im.paste(im, box) <br>
ValueError: images do not match <br>

比例为:basebg = 300x300,img1 = 150x192
我究竟做错了什么?

  • 您正在尝试将 150 x 192 像素的图像粘贴到一个测量为零乘零像素的矩形中。无需在此处传递 4 元素元组,您只需使用两个元素来指定左侧和顶部坐标。
  • 什么是\"像素字符\"请?你为什么使用./among us assets/charmodels/character1.png - among us assets/charmodels/character1.png 有什么问题?为什么要在纯色背景图像中添加 Alpha 层 - 您是否希望最终结果部分透明?
  • 我不希望结果是透明的。我希望将透明的放在背景上方。
  • 此外,放置在背景上的对象的大小也会发生变化。所以我不能给它一个盒子,因为它会拉伸物体。

标签: python python-imaging-library


【解决方案1】:

删除 (0 , 0 )

from PIL import Image

basebg = Image.open("banner.jpg").convert("RGBA")
img1 = Image.open("demo.png").convert("RGBA")

print(basebg.size)
print(basebg.mode)
print(img1.size)
print(img1.mode)

# intermediate = Image.alpha_composite(basebg, img1)

basebg.paste(img1, (0, 0, ))
basebg.save("filename.png")
basebg.show("filename.png")

【讨论】:

    猜你喜欢
    • 2021-05-05
    • 2012-08-30
    • 2018-10-22
    • 2020-04-22
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    相关资源
    最近更新 更多