使用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文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 Python
python基于phantomjs实现导入图片
May 13 Python
Python Django使用forms来实现评论功能
Aug 17 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
如何在python中写hive脚本
Nov 08 Python
Python正则表达式急速入门(小结)
Dec 16 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
Python实现屏幕录制功能的代码
Mar 02 Python
python如何使用代码运行助手
Jul 03 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
教你怎么用Python实现多路径迷宫
Apr 29 Python
python 实现图片特效处理
Apr 03 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
一个显示天气预报的程序
2006/10/09 PHP
PHP HTML代码串截取代码
2008/12/29 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
CI框架附属类用法分析
2018/12/26 PHP
javascript 常用方法总结
2009/06/03 Javascript
javascript与CSS复习(三)
2010/06/29 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
javascript设计模式之中介者模式Mediator
2014/12/30 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
js实现分页功能
2017/05/24 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
python中实现数组和列表读取一列的方法
2018/04/03 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
文明礼仪小标兵事迹
2014/01/12 职场文书
校运会入场式解说词
2014/02/10 职场文书
个人评语大全
2014/05/04 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
技术经济专业求职信
2014/09/03 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书