我正在编写一个脚本,该脚本自动为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
感谢您的支持,
蒂莫·科勒
答案 0 :(得分:0)
由于某种原因,您的logo.png
可能会加载为带有alpha的灰度,因此我将其拆分为以下组成部分:
logo = Image.open("logo.png")
Grey, Alpha = logo.split()
然后粘贴并保存如下:
bg.paste(logo, (0,0), Alpha)
bg.save('result.png')