Python实现将一张图片放到另一张图片指定的位置上并合成一张图
Python实现将一张图片放到另一张图片指定的位置上并合成一张图
# -*- coding: utf-8 -*-
# by:Apsinc
# time:2019年12月10日
#Python实现将一张图片放到另一张图片指定的位置上并合成一张图
from PIL import Imagepath = "C:/Users/Administrator/Desktop/QRCode/background.jpg"#母图详细文件名以及路径
img = Image.open(path)
# img = qr.make_image(fill_color="#555555", back_color="Red")
img = img.convert("RGBA") # CMYK/RGBA 转换颜色格式(CMYK用于打印机的色彩,RGBA用于显示器的色彩)
# 添加子图
icon = Image.open("C:/Users/Administrator/Desktop/QRCode/zitu.png")#子图文件名
# 获取图片的宽高
img_w, img_h = img.size#获取被放图片的大小(母图)
icon_w,icon_h=icon.size#获取小图的大小(子图)
factor = 6
size_w = int(img_w / factor)
size_h = int(img_h / factor)
icon_w, icon_h = icon.size
#防止子图尺寸大于母图
if icon_w > size_w:icon_w = size_w
if icon_h > size_h:icon_h = size_h
# # 重新设置子图的尺寸
# icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
w = int((img_w - icon_w) / 2)
h = int((img_h - icon_h) / 2)
# 粘贴图片
img.paste(icon, (w, h), mask=None)
# 保存图片
img.save("C:/Users/Administrator/Desktop/QRCode/c.png")#合成后的图片路径以及文件名
为了方便下次调用最好封装成为模块
from PIL import Imagedef Picture_Synthesis(mother_img,son_img,save_img,coordinate=None):""":param mother_img: 母图:param son_img: 子图:param save_img: 保存图片名:param coordinate: 子图在母图的坐标:return:"""#将图片赋值,方便后面的代码调用M_Img = Image.open(mother_img)S_Img = Image.open(son_img)factor = 1#子图缩小的倍数1代表不变,2就代表原来的一半#给图片指定色彩显示格式M_Img = M_Img.convert("RGBA") # CMYK/RGBA 转换颜色格式(CMYK用于打印机的色彩,RGBA用于显示器的色彩)# 获取图片的尺寸M_Img_w, M_Img_h = M_Img.size # 获取被放图片的大小(母图)print("母图尺寸:",M_Img.size)S_Img_w, S_Img_h = S_Img.size # 获取小图的大小(子图)print("子图尺寸:",S_Img.size)size_w = int(S_Img_w / factor)size_h = int(S_Img_h / factor)# 防止子图尺寸大于母图if S_Img_w > size_w:S_Img_w = size_wif S_Img_h > size_h:S_Img_h = size_h# # 重新设置子图的尺寸# icon = S_Img.resize((S_Img_w, S_Img_h), Image.ANTIALIAS)icon = S_Img.resize((S_Img_w, S_Img_h), Image.ANTIALIAS)w = int((M_Img_w - S_Img_w) / 2)h = int((M_Img_h - S_Img_h) / 2)try:if coordinate==None or coordinate=="":coordinate=(w, h)# 粘贴子图到母图的指定坐标(当前居中)M_Img.paste(icon, coordinate, mask=None)else:print("已经指定坐标")# 粘贴子图到母图的指定坐标(当前居中)M_Img.paste(icon, coordinate, mask=None)except:print("坐标指定出错 ")# 保存图片M_Img.save(save_img)
调用方法
Picture_Synthesis(mother_img="C:/Users/Administrator/Desktop/QRCode/b.jpg",son_img="C:/Users/Administrator/Desktop/QRCode/y.png",save_img="C:/Users/Administrator/Desktop/QRCode/newimg.png",coordinate=None#如果为None表示直接将子图在母图中居中也可以直接赋值坐标# coordinate=(50,50))
母图
子图
最终效果
好的,这就不必过多的介绍代码了,全在注释中,有问题欢迎留言!有错误也欢迎您慷慨指正!
Python实现将一张图片放到另一张图片指定的位置上并合成一张图相关推荐
- php多张图合成一张图,PHP中多张图片合成一张图片例子
$imgs = array(); $imgs[0] = '1.jpg'; $imgs[1] = '2.jpg'; $imgs[2] = '3.jpg'; $imgs[3] = '4.jpg'; $ta ...
- 【Opencv】Python+openCV实现全景图拼接(左右两张图片拼接成一张全景图)
Python+openCV实现全景图拼接(左右两张图片拼接成一张全景图) 全景图拼接 思路 具体步骤 代码与结果 代码 效果测试1 效果测试2 全景图拼接 思路 这个就是简单对左右两张图进行拼接,希望 ...
- 一张图了解python_一张图学会python
提到一张图,大多数人都知道,有人问一张图学会python,当然了,还有人问python 将多个列表合并成一个,这到底是咋回事?其实python删除列表元素呢,接下来小编为大家分享一张图学会python ...
- python多张图叠加为一张_python实现多张图片拼接成大图
本文实例为大家分享了python实现多张图片拼接成大图的具体代码,供大家参考,具体内容如下 上次爬取了马蜂窝的游记图片,并解决了PIL模块的导入问题,现在直奔主题吧: import PIL.Image ...
- 如何把一张图片放到网页上或者如何在浏览器查看一张图片
如何把一张图片放到网页上或者如何在浏览器查看一张图片 首先新建一个文件夹,命名为Index(自由命名) 然后在Index文件夹里面放进一张图片 再然后在Index文件夹里面新建一个文本文档,暂时不用命 ...
- chatgpt赋能python:Python将两张图片拼接成一张图:让您的图片处理更高效!
Python将两张图片拼接成一张图:让您的图片处理更高效! 作为一个有着10年Python编程经验的工程师,我发现Python成为了许多项目的主要语言,其中涵盖了很多关于图像处理的应用程序.在本文中, ...
- python两张图片无缝合成一张_python如何将两张图片生成为全景图片
本文实例为大家分享了python将两张图片生成全景图片的具体代码,供大家参考,具体内容如下 1.全景图片的介绍 全景图通过广角的表现手段以及绘画.相片.视频.三维模型等形式,尽可能多表现出周围的环境. ...
- python两张图片无缝合成一张_详解基于python的多张不同宽高图片拼接成大图
#!/usr/bin/env python # -*- coding:utf-8 -*- import PIL.Image as Image import os IMAGES_PATH = 'D:Ma ...
- 5_python将多张图片显示在一张图片上(20181218)
python将多张图片显示在一张图片上 1.用`pyplot`将多张图片显示在一张图片上 2.用`matplotlib`将多张图片显示在一张图片上 1.用pyplot将多张图片显示在一张图片上 pyl ...
最新文章
- Unable to preview the file. Please open a JS, CSS or HML file of the JS UI framework or a layout.xml
- oracle expdp 权限不足 1031,关于expdp,impdp操作需要的权限
- 大年初五,Python、Go、C...你最爱用哪种语言?
- gradle仓库配置
- Android APK文件学习调研
- Practice:在2008 core上部署和管理DHCP服务器
- OpenCASCADE绘制测试线束:拓扑命令之基本拓扑
- C语言: ---Linux下ulimit是什么鬼
- 分类学计算机面试什么,史上最全的机器学习面试题-机器学习爱好者必看
- Mysql 集成随机唯一id mysql unique number generation
- Confluence 6 完成你的任务
- Hashmasks将其艺术品与IPFS固定激励一起存储至Arweave中
- 威纶触摸屏与电脑连接_威纶通TK6070IP触摸屏下载线MT6071IE触摸屏编程线连接电脑USB线...
- 将图片转换成url链接
- IR2103驱动+双H桥电路=步进电机
- 实习周记----第三周
- 干系人管理4个过程及重点
- 关于爬取猫眼电影的口碑评分和累计票房的尝试
- 模仿QQ空间 网页设计
- C# 固高Jog运动
热门文章
- 编程之类的文案_最萌编程高手是这样炼成的
- 题朋友云南骑马照【明书、圣契】
- 「项目实战」一文读懂思科网络设备IOS系统
- mysql 1033_mysql报错1033 Incorrect information in file: ''''xxx.frm''''问题的解决方法(图)...
- 6iypl8php,无线超方便 YPL TL-1/TL-3蓝牙音箱新品上市
- 低代码常见场景【上】|如何解决业务问题
- HTML+CSS详细知识点(下)
- 单片机工程师如何继续提升自己?
- Java 对一组时间进行处理 提出连续的时间段
- 【“到此一游”系列】(菜鸡参加“美亚杯” 电子取证大赛感受)