python图片合成的示例
这篇文章主要介绍了Python图片合成的示例,帮助大家更好地理解和使用Python。
PIL库简直好用的不得了,PIL下的Image库更是封装了很多对图片处理的函数。关于Image库的介绍和使用,这里用我半个月前看到的一篇博客写的demo作为背景,做一下图片的合成。
图片可以看作是很多像素点组成的,每个像素点都是一个RGB颜色 (red, green, blue),那么合成两张照片就有办法了。我们可以在一张新的RGB色的图片里,一个像素点取图片一的对应位置的像素,下一个像素点取图片二的像素,直到遍历完成。
代码如下:
from PIL import Image ## 这里采用传入图片地址调用此函数 # 这个方法目前不支持按比例合成,默认为1:1 # 各取一个像素点合并,传入的参数为两张图片的地址 def merge1(img1_address, img2_addess): status = 100 # 状态码100为正常 # 200为地址错误 try: img1 = Image.open(img1_address) img2 = Image.open(img2_address) except: status = 200 if status == 200: return "地址错误" width = min(img1.size[0], img2.size[0]) height = min(img1.size[1], img2.size[1]) print(width, height) img_new = Image.new('RGB', (width, height)) for x in range(width): for y in range(height): if y % 2 == 0: pixel = img1.getpixel((x, y)) img_new.putpixel((x, y), pixel) else: pixel = img2.getpixel((x, y)) img_new.putpixel((x, y), pixel) return img_new