使用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程序与系统shell交互的方式
Apr 09 Python
Python 爬虫爬取指定博客的所有文章
Feb 17 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
May 29 Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 Python
Django 静态文件配置过程详解
Jul 23 Python
解决Django中调用keras的模型出现的问题
Aug 07 Python
Java文件与类动手动脑实例详解
Nov 10 Python
Python彻底删除文件夹及其子文件方式
Dec 23 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
Apr 15 Python
Python编写单元测试代码实例
Sep 10 Python
Python实现的扫码工具居然这么好用!
Jun 07 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
第七节 类的静态成员 [7]
2006/10/09 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
PHP 使用位运算实现四则运算的代码
2021/03/09 PHP
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
javascript instanceof,typeof的区别
2010/03/24 Javascript
Web开发之JavaScript
2012/03/29 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
js实现随机数字字母验证码
2017/06/19 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
Vue中的v-for指令不起效果的解决方法
2018/09/27 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
[03:20]次级联赛厮杀超职业 现超级兵对拆世纪大战
2014/10/30 DOTA
用Python实现斐波那契(Fibonacci)函数
2016/03/25 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Python3学习笔记之列表方法示例详解
2017/10/06 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
财务支持类个人的自我评价
2014/02/14 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技