python图像合成代码_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,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))
box = (166,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),base_img) #第一个参数表示需要粘贴的图像,中间的是坐标,最后是一个是mask图片,用于指定透明区域,将底图显示出来。
# target.show()
target.save('./out.png') # 保存图片
总结
以上就是本文关于python PIL实现图片合成实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
python图像合成代码_python使用pil库实现图片合成实例代码相关推荐
- python画棒棒糖程序_Python使用turtle库绘制小猪佩奇(实例代码)
turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制.turtle图形绘制的概念诞生于1969年,成功应用于LOGO编程语言. turtle库绘制图形有一个基本框架:一个小海龟 ...
- Python 技术篇-用PIL库修改图片透明度实例演示,改变png图片色道为RGBA、RGB
PIL 库可以设置图片透明度. pip install pillow 安装了 pillow 库后就可以使用 PIL 库了. 我们都知道,图片是由无数个点组成的,300x300 像素,就是 9 万个点. ...
- python 地图偏移_python 地图经纬度转换、纠偏的实例代码 百度地图经纬度web纠偏怎么用...
天地图的经纬度 经过纠偏了么 给个例子证明下 如何用python实现百度地图墨卡托坐标跟经纬度坐标互转 麦哲伦机器: 系统设置 地图单位 自定义坐标系 横向墨卡托 原点纬度0 原点经度126(通化) ...
- python操作hive数据库代码_python导出hive数据表的schema实例代码
本文研究的主要问题是python语言导出hive数据表的schema,分享了实现代码,具体如下. 为了避免运营提出无穷无尽的查询需求,我们决定将有查询价值的数据从mysql导入hive中,让他们使用H ...
- python处理分组_Python中的groupby分组功能的实例代码
pandas中的DataFrame中可以根据某个属性的同一值进行聚合分组,可以选单个属性,也可以选多个属性: 代码示例: import pandas as pd A=pd.DataFrame([['B ...
- python 地图偏移_python 地图经纬度转换、纠偏的实例代码
python 地图经纬度转换.纠偏的代码如下所示: # -*- coding: utf-8 -*- import json import urllib import math x_pi = 3.141 ...
- python写透视挂_python opencv实现任意角度的透视变换实例代码
本文主要分享的是一则python+opencv实现任意角度的透视变换的实例,具体如下: # -*- coding:utf-8 -*- import cv2 import numpy as np def ...
- python爬虫网页中的图片_Python爬虫爬取一个网页上的图片地址实例代码
本文实例主要是实现爬取一个网页上的图片地址,具体如下. 读取一个网页的源代码: import urllib.request def getHtml(url): html=urllib.request. ...
- python自带的PIL库扩展图片大小给图片加上文字描述
利用python自带的PIL库扩展图片大小给图片加上文字描述.大多都是库函数调用,只是给定图片宽度后计算文字所需行数的代码需要写. 代码比较丑,but it works. #!/usr/bin/env ...
最新文章
- CVPR2020|Facebook PIFuHD:二维图像生成高质量、高细节三维人物
- vue中computed和methods区别
- 111. 二叉树的最小深度 golang
- 10万量级30秒自动化配座,0现场故障:这届冬奥票务系统有点不一样
- 双十一淘宝、京东服务器瘫痪大揭秘 感悟
- Centos7安装完毕后无法联网的解决方法
- 基于Java毕业设计优课网设计与实现源码+系统+mysql+lw文档+部署软件
- matlab自适应滤波器 LMS算法
- 【线性代数(1)】二阶三阶不等式
- 营养保健品公司网站建设策划书
- 路由器和计算机的功能有何不同,网关和路由器的区别是什么 两者又有什么不同...
- OSChina 周六乱弹 ——什么是村支书不可推卸的责任!
- 最新《播布客李明新概念C语言作品》
- 【NLP】文本匹配——Simple and Effective Text Matching with Richer Alignment Features阅读与总结(RE2)
- c# 微软 REST API语音转文字
- Proteus简单入门教程以及使用Proteus仿真STM32F103单片机和Arduino单片机
- PHP在线客服系统源码+H5+APP+搭建教程实例
- Python从小白到新手
- Django框架的模型层之多表操作
- 消息总线c语言,消息队列与消息总线 - 有什么区别?
热门文章
- 判断SQL是否为最优查询语句
- IDEA中web项目maven项目打war包的方式
- freeswitch+soundtouch 变声测试失败
- 【网络监控】公司网络摄像头画面卡顿、不显示 视频时有时无问题记录
- Leakcanary原理笔记
- tl-wdr5620虚拟服务器,TP-LINK路由器 TL-WDR5620 设置、使用、问题解答综合指南 | 192路由网...
- 双核CPU和双CPU的区别
- Three.js-着色器(glsl内置函数)
- qt的pos()和globalpos()(globalpos是相对于桌面的)(转)
- 非技术手段获取同学信息