使用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的curses库使用教程
Apr 11 Python
基于python中的TCP及UDP(详解)
Nov 06 Python
PyQt5每天必学之进度条效果
Apr 19 Python
解决pycharm中导入自己写的.py函数出错问题
Feb 12 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 Python
python 已知三条边求三角形的角度案例
Apr 12 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 Python
python和c语言哪个更适合初学者
Jun 22 Python
详解Python中Pyyaml模块的使用
Oct 08 Python
Python urlopen()参数代码示例解析
Dec 10 Python
python 如何获取页面所有a标签下href的值
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代码
2007/03/08 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
浅谈javascript的数据类型检测
2010/07/10 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python实现查找系统盘中需要找的字符
2015/07/14 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
Python内置函数reversed()用法分析
2018/03/20 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
Python自动抢红包教程详解
2019/06/11 Python
10款最好的Python开发编辑器
2019/07/03 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
初中优秀班集体申报材料
2014/05/01 职场文书
军训口号
2014/06/13 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
幼儿园教师教育随笔
2015/08/14 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python