如何利用python实现一个合成图片功能

  介绍

这篇文章将为大家详细讲解有关如何利用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实现一个合成图片功能