【发布时间】:2020-12-04 23:44:10
【问题描述】:
我是 PIL 的新手,所以对我来说很难理解我是如何做到的,有人可以帮助我。在代码中,我只拍了两张照片并调整了一张透明的大小。现在我不知道在没有 .paste() 类的情况下如何粘贴它
def get_web_image (url):
img_data = requests.get(url).content
with open('picture1(bg)_1200x800.png', 'wb') as handler:
handler.write(img_data)
return img_data
def paste_image (source, destination, x, y, omit_color="None"):
im = Image.open(source)
pixels_newpaste = []
newsize = (200, 200)
im = im.resize(newsize)
im.save('picture2(done).png')
im.show()
paste_image ('picture2(transparent)_840x841.png', main_image, 1, 1)
main_pic()
#my_img_object = get_web_image ('https://avante.biz/wp-content/uploads/Baseball-Wallpapers/Baseball-Wallpapers-015.jpg')
我尝试使用 .getpixel() 来制作它,但据我所知,它只需要绘制一种颜色。所以请帮我做这个功能
【问题讨论】:
-
请问使用
paste()有什么问题?请问结果应该是怎样的? -
@Mark Setchell 这是一个测验,所以在要求中说你不能使用 paste() 将第二张图片放在第一张图片的某些部分,例如在中间。我现在正在学习这个框架,所以你可以给我一些提示,或者解释一下算法,我可以自己做的代码
-
呃!您可以遍历所有像素,并在每个位置从背景和前景图像中获取像素。如果前景图像不透明,则使用前景图像中的值覆盖背景图像中的像素。如果在它运行时泡茶????或者使用 Numpy...stackoverflow.com/a/65035996/2836621
-
@Mark Setchell 非常感谢,我会尽快写下结果
-
其实再想一想,如果在背景图像之上构建输出图像,则不需要获取背景像素。只需遍历像素以获得每个位置的前景像素,如果前景不透明,则用前景像素的 RGB 值覆盖背景像素。否则允许现有背景像素保持不变。
标签: python python-imaging-library