使用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 XML RPC服务器端和客户端实例
Nov 22 Python
numpy排序与集合运算用法示例
Dec 15 Python
Python实现的redis分布式锁功能示例
May 29 Python
python如何求解两数的最大公约数
Sep 27 Python
python中append实例用法总结
Jul 30 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
Sep 20 Python
vue学习笔记之动态组件和v-once指令简单示例
Feb 29 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 Python
Python常用数字处理基本操作汇总
Sep 10 Python
使用Pytorch搭建模型的步骤
Nov 16 Python
Python解析微信dat文件的方法
Nov 30 Python
Python 居然可以在 Excel 中画画你知道吗
Feb 15 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 auth_http类库进行身份效验
2009/03/19 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
php+ajax实时输入自动搜索匹配的方法
2014/12/26 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
python数据封装json格式数据
2018/03/04 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
Canvas获取视频第一帧缩略图的实现
2020/11/11 HTML / CSS
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
拉夫劳伦爱尔兰官方网站:Ralph Lauren爱尔兰
2020/04/10 全球购物
幼儿园课题实施方案
2014/05/14 职场文书
班级活动总结格式
2014/08/30 职场文书
上课随便讲话检讨书
2014/09/12 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
投标承诺函格式
2015/01/21 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
浅谈spring boot使用thymeleaf版本的问题
2021/08/04 Java/Android
Python学习开发之图形用户界面详解
2021/08/23 Python
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL