时间:2021-05-23
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 cv2import numpy as npimport matplotlib.pyplot as pltimport osfrom 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合成图片内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
以OPPO手机为例,把图片合成一张的方法是: 合成图片,或合成相片、合成照片,近似报纸、杂志自称的设计图片,制作容易,用PhotoShop等编辑、剪与贴而已,
电脑合成图片的做法如下: 1、首先在电脑上找到本地图片,右击其中一张选中的图片,点击“编辑”,就会弹出新的界面。 2、进入新的页面,先把拉长图片的范围。再点
个性化图片模块和动态皮肤目前只支持拼音输入法,与五笔用户无缘。基本上,很多人在没有明白个性化图片这个功能之前,做皮肤都是直接编辑一张图片出来,然后把拉伸部分设置
简单PHP上传图片、删除图片实现代码上传图片:?12345678910111213141516171819202122232425262728293031323
本文为大家整理了C#图片切割、图片压缩、缩略图生成的实现代码,大家可以收藏,方便以后使用,具体内容如下///图片切割函数//////原始图片文件///在X轴上的