使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)


Posted in Python onApril 30, 2020

1.业务需求背景

业务提供一张底层图片1以及需要在底层图片上添加的图片2,两张图片大小不一致,将小图2添加到底图1中,并在其他的空白部分添加个性化的文本信息

2.图片处理逻辑

在底层图片上添加文本信息,图片另存到一个新的路径,命名为图3
将图3和图2合并,处理位置信息,透明率等,将处理完成之后的图片另存到新的路径,命名为图4

3.代码处理部分

3.1 图片上添加文本信息

from PIL import Image,ImageDraw,ImageFont
# 底图添加字体文本

im = Image.open("./底图.png").convert('RGBA')

# 查看原图的大小
print(im.mode,im.size) 
# 生成与原图大小完全一致的新图片,设定为完全透明
txt=Image.new('RGBA', im.size, (0,0,0,0)) 
# 设置字体,字号
fnt=ImageFont.truetype(r"C:\Windows\Fonts\STXINWEI.TTF", 50)
d=ImageDraw.Draw(txt)
# 拼接需要在图片上填写的文本
name = "李敏"
date_today = "2020-04-28"
a = """
  亲爱的{0}:
      叮。
      确认收货:专属生日祝福!
      快乐属于您,幸福属于您!
      温馨属于您,好运属于您!
      工作在忙碌,本能照顾您!
                
                \r\r\r\rXX部门
                \r\r\r\r{1}          
""".format(name,date_today)
# 设置字体信息所在的位置,写入的信息,颜色
d.text((txt.size[0]-950,txt.size[1]-1300),a,font=fnt,fill=(28,28,28,255))
# 保存新的图片
out=Image.alpha_composite(im,txt)
out.save(r"NEW-1.png")

3.2 两张大小不一致的图片重叠

import cv2
import numpy as np
import matplotlib.pyplot as plt
import os
from PIL import Image,ImageDraw,ImageFont
# 读取两张图片信息
os.chdir('E:\RPA\生日贺卡')
bear = cv2.imread('./baiyang+gou.png')
sky = cv2.imread('./NEW-1.png')
"""
bear 小图
sky  大图
"""
# 根据小图像的大小,在大图像上创建感兴趣区域roi(放置位置任意取)
rows, cols = bear.shape[:2] #获取bear的高度、宽度
roi = sky[0:rows, 0:cols]

dst = cv2.addWeighted(bear,1,roi,0,0) #图像融合,设置透明度,大小等
add_img = sky.copy() #对原图像进行拷贝
add_img[800:rows+800, 75:cols+75] = dst # 将融合后的区域放进原图,可通过改数值修改位置
# 读取融合之后的图片数据(数据类型为dateframe对象)
ret = cv2.cvtColor(add_img,cv2.COLOR_BGR2RGB)

im = Image.fromarray(ret)
im.save("./完整图.png")
print("图片保存完成")

到此这篇关于使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)的文章就介绍到这了,更多相关Python合成图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python检查指定文件是否存在的方法
Jul 06 Python
详解Python实现按任意键继续/退出的功能
Aug 19 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
Django Rest framework三种分页方式详解
Jul 26 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
Apr 24 Python
大数据分析用java还是Python
Jul 06 Python
用python写PDF转换器的实现
Oct 29 Python
scrapy处理python爬虫调度详解
Nov 23 Python
python实现黄金分割法的示例代码
Apr 28 Python
Python基础之条件语句详解
Jun 16 Python
python神经网络ResNet50模型
May 06 Python
解决Python发送Http请求时,中文乱码的问题
Apr 30 #Python
Pytorch高阶OP操作where,gather原理
Apr 30 #Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 #Python
Python闭包与装饰器原理及实例解析
Apr 30 #Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 #Python
Pycharm连接远程服务器过程图解
Apr 30 #Python
python3发送request请求及查看返回结果实例
Apr 30 #Python
You might like
PHP新手上路(六)
2006/10/09 PHP
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
2014过年倒计时示例
2014/01/31 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
Maps Javascript
2007/01/22 Javascript
封装好的省市地区联动控件附下载
2007/08/13 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
js读取本地文件的实例
2017/12/22 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
Python max内置函数详细介绍
2016/11/17 Python
Python使用pylab库实现绘制直方图功能示例
2018/06/01 Python
Python删除n行后的其他行方法
2019/01/28 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
Python实现京东抢秒杀功能
2021/01/25 Python
新郎新娘婚礼答谢词
2014/01/11 职场文书
信息专业大学生自我评价分享
2014/01/17 职场文书
周年庆典邀请函范文
2014/01/23 职场文书
超市采购员岗位职责
2014/02/01 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
小学中队长竞选稿
2015/11/20 职场文书
详解MySQL中的pid与socket
2021/06/15 MySQL