介绍
这篇文章将为大家详细讲解有关如何利用python实现一个合成图片功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
python的公益诉讼库简直好用的不得了,公益诉讼下面的图像库更是封装了很多对图片处理的函数,关于图像库的介绍和使用,看这里:http://effbot.org/imagingbook/image.htm
这里用我半个月前看到的一篇博客写的演示作为背景,做一下图片的合成
图片可以看作是很多像素点组成的,每个像素点都是一个RGB颜色,(红,绿,蓝),那么合成两张照片就有办法了,我们可以在一张新的RGB色的图片里一个像素点取图片一的对应位置的像素,下一个像素点取图片二的像素,直到遍历完成,代码如下:
#将像素点按比例取色,然后合成一个新像素点 #传入的参数为两张图片的地址和比例 #如果两者之和不为1则以第一个图片的比例为准 def merge2 (img1_address img2_address percent1=0.50, percent2=0.50): 状态=100 100 #状态码为正常 # 200为地址错误 试一试: img1=Image.open (img1_address) img2=Image.open (img2_address) 除了: 状态=200 img_new=?“ 其他: 如果percent1 + percent2 !=1: percent2=1-percent1 宽度=min (img1.size [0], img2.size [0]) 身高=min (img1.size [1], img2.size [1]) img_new=Image.new (& # 39; rgb # 39;,(宽度、高度)) x的范围(宽度): y的范围(高度): r1 g1 b1=img1.getpixel ((x, y)) r2, g2, b2=img2.getpixel ((x, y)) r=int (percent1 * r1 + r2 percent2 *) g=int (percent1 * g1 + percent2 * g2) b=int (percent1 * b1 + percent2 * b2) img_new.putpixel ((x, y)、(r, g, b)) 最后: 返回img_new,状态
返回的参数与上述相同
,如果想要保存图片可用image.save()函数保存
总的代码如下:
如何利用python实现一个合成图片功能