python使用pil库实现图片合成实例代码

本文研究的主要是python PIL实现图片合成的相关内容,具体介绍如下,分享实例代码。

在项目中需要将两张图片合在一起。遇到两种情况,一种就是两张非透明图片的合成, 一种是涉及到透明png的合成。

相关API见 http://pillow.readthedocs.io/en/latest/reference/Image.html

第一种情况,直接将两张图片合在一起就可以了。如下图所示,将两张图片合在一起

+=

详细代码

from PIL import Image
 #加载底图
 base_img = Image.open(ur'D:\Desktop\1.png')
 # 可以查看图片的size和mode,常见mode有RGB和RGBA,RGBA比RGB多了Alpha透明度
 # print base_img.size, base_img.mode
 box = (166, 64, 320, 337) # 底图上需要P掉的区域

 #加载需要P上去的图片
 tmp_img = Image.open(ur'D:\Desktop\2.png')
 #这里可以选择一块区域或者整张图片
 #region = tmp_img.crop((0,0,304,546)) #选择一块区域
 #或者使用整张图片
 region = tmp_img

 #使用 paste(region, box) 方法将图片粘贴到另一种图片上去.
 # 注意,region的大小必须和box的大小完全匹配。但是两张图片的mode可以不同,合并的时候回自动转化。如果需要保留透明度,则使用RGMA mode
 #提前将图片进行缩放,以适应box区域大小
 # region = region.rotate(180) #对图片进行旋转
 region = region.resize((box[2] - box[0], box[3] - box[1]))
 base_img.paste(region, box)
 #base_img.show() # 查看合成的图片
 base_img.save('./out.png') #保存图片

第一种情况时候规则的图片进行合并,比如矩形,难以对于任意形状的图片。对于任意形状的合并可以考虑使用透明的PNG来完成。

第二种情况,将非透明的图片放在底部,上面放一张局部透明的png图片,然后合成一张图片。

代码

from PIL import Image
 #加载中间透明的手机图片
 base_img = Image.open(ur'D:\Desktop\3.png')
 #新建透明底图,大小和手机图一样,mode使用RGBA,保留Alpha透明度,颜色为透明
 #Image.new(mode, size, color=0),color可以用tuple表示,分别表示RGBA的值
 target = Image.new('RGBA', base_img.size, (0, 0, 0, 0))
 box = (166, 64, 320, 337) #区域
 # 加载需要狐狸像
 region = Image.open(ur'D:\Desktop\4.png')
 region = region.rotate(180) #旋转180度
 #确保图片是RGBA格式,大小和box区域一样
 region = region.convert("RGBA")
 region = region.resize((box[2] - box[0], box[3] - box[1]))
 #先将狐狸像合成到底图上
 target.paste(region,box)
 #将手机图覆盖上去,中间透明区域将狐狸像显示出来。
 target.paste(base_img,(0,0),base_img) #第一个参数表示需要粘贴的图像,中间的是坐标,最后是一个是mask图片,用于指定透明区域,将底图显示出来。
 # target.show()
 target.save('./out.png') # 保存图片

总结

以上就是本文关于python PIL实现图片合成实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

您可能感兴趣的文章:

  • python3 pillow生成简单验证码图片的示例
  • 利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
  • Python实现更改图片尺寸大小的方法(基于Pillow包)
  • Python基于pillow判断图片完整性的方法
  • Linux上安装Python的PIL和Pillow库处理图片的实例教程
  • Python使用PIL库实现验证码图片的方法
  • 使用Python的PIL模块来进行图片对比
  • python使用PIL模块实现给图片打水印的方法
(0)

相关推荐

  • Python使用PIL库实现验证码图片的方法

    本文实例讲述了Python使用PIL库实现验证码图片的方法.分享给大家供大家参考,具体如下: 现在的网页中,为了防止机器人提交表单,图片验证码是很常见的应对手段之一.这里就不详细介绍了,相信大家都遇到过. 现在就给出用Python的PIL库实现验证码图片的代码.代码中有详细注释. #!/usr/bin/env python #coding=utf-8 import random from PIL import Image, ImageDraw, ImageFont, ImageFilter _l

  • 使用Python的PIL模块来进行图片对比

    在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但是估计人会累死, 开个玩笑,当然是通过机器识别的,海量的图片只有机器识别才能做到. 那用python能不能实现这种功能呢?答案是:能 利用python的PIL模块的强大的图像处理功能就可以做到,下面上代码: import colorsys def get_dominant_color(image): #颜色模式转换,以便输出rgb颜色值 image = im

  • python3 pillow生成简单验证码图片的示例

    使用Python的pillow模块 random 模块随机生成验证码图片,并应用到Django项目中 安装pillow $ pip3 install pillow 生成验证码图片 \vericode.py from PIL import Image,ImageDraw,ImageFont,ImageFilter import random #随机码 默认长度=1 def random_code(lenght=1): code = '' for char in range(lenght): cod

  • Python基于pillow判断图片完整性的方法

    本文实例讲述了Python基于pillow判断图片完整性的方法.分享给大家供大家参考,具体如下: 1.安装第三方库. pip install pillow 2.函数示例. #encoding=utf-8 #author: walker #date: 2016-07-26 #summary: 判断图片的有效性 import io from PIL import Image #判断文件是否为有效(完整)的图片 #输入参数为文件路径 def IsValidImage(pathfile): bValid

  • 利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例

    前言 最近的一个项目中需要在图片上添加文字,使用了OpenCV,结果发现利用opencv给图像添加文字有局限.可利用的字体类型比较少,需要安装Freetype扩展,比较复杂.而且不能用putText函数输出中文,否则就会出现乱码的情况.只好选择使用Python PIL函数库对照片进行处理,利用Python自带的PIL库扩展图片大小给图片加上文字描述,大多都是库函数调用,只是给定图片宽度后计算文字所需行数的代码需要写. 代码比较丑,but it works. 代码示例 #!/usr/bin/env

  • Python实现更改图片尺寸大小的方法(基于Pillow包)

    本文实例讲述了Python实现更改图片尺寸大小的方法.分享给大家供大家参考,具体如下: 1.PIL包推荐Pillow. 2.源码: #encoding=utf-8 #author: walker #date: 2014-05-15 #function: 更改图片尺寸大小 import os import os.path from PIL import Image ''' filein: 输入图片 fileout: 输出图片 width: 输出图片宽度 height:输出图片高度 type:输出图

  • Linux上安装Python的PIL和Pillow库处理图片的实例教程

    安装 正常情况,只需 pip install PIL==1.1.7 或者 pip install Pillow==2.9.0 即可.但需留意安装后的输出 安装完成后,需留意输出: *** TKINTER support not available *** JPEG support not available *** WEBP support not available *** ZLIB (PNG/ZIP) support not available *** FREETYPE2 support n

  • python使用PIL模块实现给图片打水印的方法

    本文实例讲述了python使用PIL模块实现给图片打水印的方法.分享给大家供大家参考.具体实现方法如下: import Image, ImageEnhance def reduce_opacity(im, opacity): """Returns an image with reduced opacity.""" assert opacity >= 0 and opacity <= 1 if im.mode != 'RGBA': im

  • python使用pil库实现图片合成实例代码

    本文研究的主要是python PIL实现图片合成的相关内容,具体介绍如下,分享实例代码. 在项目中需要将两张图片合在一起.遇到两种情况,一种就是两张非透明图片的合成, 一种是涉及到透明png的合成. 相关API见 http://pillow.readthedocs.io/en/latest/reference/Image.html 第一种情况,直接将两张图片合在一起就可以了.如下图所示,将两张图片合在一起 += 详细代码 from PIL import Image #加载底图 base_img

  • Python中使用PIL库实现图片高斯模糊实例

    一.安装PIL PIL是Python Imaging Library简称,用于处理图片.PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能设置.在源码ImageFilter.py的第160行: 所以,我们在这里自己改一下就OK了. 项目地址:http://www.pythonware.com/products/pil/ 二.修改后的代码 代码如下: 复制代码 代码如下: #-*- coding: utf-8 -*- from PIL

  • Python使用turtle库绘制小猪佩奇(实例代码)

    turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制.turtle图形绘制的概念诞生于1969年,成功应用于LOGO编程语言. turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形.刚开始绘制时,小海龟位于画布正中央,此处坐标为(0,0),前进方向为水平右方. 在Python3系列版本安装目录的Lib文件夹下可以找到turtle.py文件. 下面通过代码给大家介绍Python使用turtle库绘制小猪佩奇, 具体代码如下所示: # -*

  • 基于Python的PIL库学习详解

    摘要 对于图像识别,大量的工作在于图像的处理,处理效果好,那么才能很好地识别,因此,良好的图像处理是识别的基础.在Python中,有一个优秀的图像处理框架,就是PIL库,本博文会分模块,介绍PIL库中的各种方法,并列举相关例子. 参考:http://pillow-cn.readthedocs.io/zh_CN/latest/reference/index.html 网站上列举了PIL库中所有的模块和方法,但是没有相关的例子,博文中会尽量给出相关的例子和进行简单的讲解. 基于的环境:Win10,P

  • python通过pil为png图片填充上背景颜色的方法

    本文实例讲述了python通过pil为png图片填充上背景颜色的方法.分享给大家供大家参考.具体分析如下: png图片有些是没有背景颜色,如果希望以单色(比如白色)填充背景,可以使用下面的代码,这段代码将当前目录下的 jb51.net.png图片填充了白色背景. 使用指定的颜色的背景色即可,然后把该图片用alpha通道填充到该单色背景上.  比如下面使用白色背景: im = Image.open('jb51.net.png') x,y = im.size try: # 使用白色来填充背景 fro

  • python通过pil模块获得图片exif信息的方法

    本文实例讲述了python通过pil模块获得图片exif信息的方法.分享给大家供大家参考.具体分析如下: python的pil模块功能超级强大,不但可以用来处理图片也可以用来获取图片的exif数据 from PIL import Image #code from http://www.jb51.net img = Image.open('img.jpg') exif_data = img._getexif() 希望本文所述对大家的Python程序设计有所帮助.

  • Python Pillow(PIL)库的用法详解

    Pillow库是一个Python的第三方库. 在Python2中,PIL(Python Imaging Library)是一个非常好用的图像处理库,但PIL不支持Python3,所以有人(Alex Clark和Contributors)提供了Pillow,可以在Python3中使用. 官方文档路径:https://pillow.readthedocs.io/en/latest/ 一.安装Pillow pip install pillow Pillow库安装成功后,导包时要用PIL来导入,而不能用

  • 通过Python的filestools库给图片添加全图水印的示例详解

    目录 前言 一.filestools库简介 二.安装filestools 三.查看filestools版本 四.图片添加全图水印 1.引入库 2.添加水印 五.参数调整对比 1.水印颜色 1.1通过名称设置颜色 1.2通过RGB值设置颜色 1.3通过十六进制设置颜色 2.水印字体的大小 3.水印的透明度 4.水印直接的间隔 5.水印旋转角度 总结 前言 大家好,我是空空star,本篇给大家分享一下通过Python的filestools库给图片添加全图水印. 一.filestools库简介 fil

随机推荐