当前位置: 移动技术网 > IT编程>脚本编程>Python > 使用Python合成图片(图片添加个性化文本,图片上叠加其他图片)

使用Python合成图片(图片添加个性化文本,图片上叠加其他图片)

2020年04月30日  | 移动技术网IT编程  | 我要评论

反倾销法,安庆碧桂园房价,新东方在线学习卡

1.业务需求背景

业务提供一张底层图片1以及需要在底层图片上添加的图片2,两张图片大小不一致,将小图2添加到底图1中,并在其他的空白部分添加个性化的文本信息

2.图片处理逻辑

  1. 在底层图片上添加文本信息,图片另存到一个新的路径,命名为图3
  2. 将图3和图2合并,处理位置信息,透明率等,将处理完成之后的图片另存到新的路径,命名为图4

3.代码处理部分

3.1 图片上添加文本信息

 1 from pil import image,imagedraw,imagefont
 2 # 底图添加字体文本
 3 
 4 im = image.open("./底图.png").convert('rgba')
 5 
 6 # 查看原图的大小
 7 print(im.mode,im.size) 
 8 # 生成与原图大小完全一致的新图片,设定为完全透明
 9 txt=image.new('rgba', im.size, (0,0,0,0)) 
10 # 设置字体,字号
11 fnt=imagefont.truetype(r"c:\windows\fonts\stxinwei.ttf", 50)
12 d=imagedraw.draw(txt)
13 # 拼接需要在图片上填写的文本
14 name = "李敏"
15 date_today = "2020-04-28"
16 a = """
17     亲爱的{0}:
18             叮。
19             确认收货:专属生日祝福!
20             快乐属于您,幸福属于您!
21             温馨属于您,好运属于您!
22             工作在忙碌,本能照顾您!
23                                 
24                                \r\r\r\rxx部门
25                                \r\r\r\r{1}                   
26 """.format(name,date_today)
27 # 设置字体信息所在的位置,写入的信息,颜色
28 d.text((txt.size[0]-950,txt.size[1]-1300),a,font=fnt,fill=(28,28,28,255))
29 # 保存新的图片
30 out=image.alpha_composite(im,txt)
31 out.save(r"new-1.png")

3.2 两张大小不一致的图片重叠

 1 import cv2
 2 import numpy as np
 3 import matplotlib.pyplot as plt
 4 import os
 5 from pil import image,imagedraw,imagefont
 6 # 读取两张图片信息
 7 os.chdir('e:\rpa\生日贺卡')
 8 bear = cv2.imread('./baiyang+gou.png')
 9 sky = cv2.imread('./new-1.png')
10 """
11 bear  小图
12 sky   大图
13 """
14 # 根据小图像的大小,在大图像上创建感兴趣区域roi(放置位置任意取)
15 rows, cols = bear.shape[:2] #获取bear的高度、宽度
16 roi = sky[0:rows, 0:cols]
17 
18 dst = cv2.addweighted(bear,1,roi,0,0) #图像融合,设置透明度,大小等
19 add_img = sky.copy() #对原图像进行拷贝
20 add_img[800:rows+800, 75:cols+75] = dst  # 将融合后的区域放进原图,可通过改数值修改位置
21 # 读取融合之后的图片数据(数据类型为dateframe对象)
22 ret = cv2.cvtcolor(add_img,cv2.color_bgr2rgb)
23 
24 im = image.fromarray(ret)
25 im.save("./完整图.png")
26 print("图片保存完成")

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网