python RTL自动生成_「中信RPA项目案例分享」python 实现自动生成个性化生日贺卡

python 处理图片

1. 图片上添加文字

1.1 代码部分

  • 代码原理: 创建与原图同等大小的一张图片, 设置透明度为 0, 将两张同大小的图片重叠
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:WindowsFontsSTXINWEI.TTF", 50)d=ImageDraw.Draw(txt)# 拼接需要在图片上填写的文本name = "xxx"date_today = "2020-04-28"a = """    亲爱的{0}:            叮。            确认收货:专属生日祝福!            快乐属于您,幸福属于您!            温馨属于您,好运属于您!            工作在忙碌,本能照顾您!                                                               分行工会                               {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")

1.2 效果展示

1.2.1 原图展示
f0dc0227f4b1f625404bcf4051e7f3a5.png
1.2.2 处理之后图片展示
6b3c8cf303ca9d5c8821b5d39bdc991e.png

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

2.1 代码部分

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("图片保存完成")

2.2 效果展示

2.2.1 原图展示
c9555fe95bac1fa50f943933e4a394b2.png
2.2.2 处理之后图片展示
c09678be89a498398f38c0fdd93977b9.png

3. 图片数据保存的方式

3.1 matplotlib模块

该模块是 pandas 安装包下的模块, 在RPA设计器中可能会因为设计器的 python 包下不存在该模块包产生错误, 慎用!!!

import cv2import matplotlib.pyplot as pltret = cv2.cvtColor(add_img,cv2.COLOR_BGR2RGB)plt.imsave("./完整图.png",ret)

3.2 PIL

from PIL import Image# ret 参数为读取到的图片数据,数据类型为dateframeim = Image.fromarray(ret)# path 参数为图片保存的路径im.save(path)

3.3 cv2

import cv2import numpy as npcv2.imwrite("filename.png", np.zeros((10,10)))

3.4 scipy.misc

import scipy.miscmisc.imsave('out.jpg', image_array)

上面的 scipy 版本会标准化所有图像,以便 min(数据) 变成黑色,max(数据) 变成白色。如果数据应该是精确的灰度级或准确的 RGB 通道,则解决方案为:

import scipy.miscmisc.toimage(image_array, cmin=0.0, cmax=...).save('outfile.jpg')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值