【问题标题】:Pillow: How can i paste a Image on another Image?枕头:如何将图像粘贴到另一个图像上?
【发布时间】:2019-04-26 21:07:08
【问题描述】:

我正在编写一个自动为 Instagram 创建报价图像的脚本。所以我想在背景上放一个日志(logo.png)。

如果我运行我的代码,我会收到此错误:

$ python main.py
Traceback (most recent call last):
  File "main.py", line 17, in <module>
    imgbg = bg.paste(logo, (0,0,0,0))
  File "C:\Users\bukto\AppData\Local\Programs\Python\Python36-32\lib\site-packages\PIL\Image.py", line 1459, in paste
    self.im.paste(im, box)
ValueError: images do not match

这是我的代码:

#imports
from PIL import Image
import random

###Generate a Color###

#a list of rgb color codes
colors = [(26, 188, 156),(46, 204, 113),(39, 174, 96),(22, 160, 133),(52, 152, 219),(41, 128, 185),(155, 89, 182),(142, 68, 173),(52, 73, 94),(44, 62, 80),(230, 126, 34),(211, 84, 0),(231, 76, 60),(192, 57, 43)]

bg = Image.new('RGB', (800, 800), random.choice(colors)) #choose a random number out of the list


#add Logo

logo = Image.open("logo.png")

imgbg = bg.paste(logo, (0,0,0,0))

imgbg.save("./img/test.png")

我希望徽标在左上角。

如果你想自己测试,这里有一个 git 分支: https://github.com/koehlertimo/QuoteMaker/tree/stackoverflow

感谢您的支持,

蒂莫·科勒

【问题讨论】:

标签: python python-3.x python-imaging-library


【解决方案1】:

由于某种原因,您的 logo.png 似乎加载为带有 alpha 的灰度,因此我将其拆分为以下组成部分:

logo = Image.open("logo.png") 
Grey, Alpha = logo.split()

然后像这样粘贴并保存:

bg.paste(logo, (0,0), Alpha) 
bg.save('result.png')     

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 2021-05-26
    • 2012-03-25
    相关资源
    最近更新 更多