快捷搜索:  汽车  科技

如何用python做一个贺卡(中信RPA项目案例分享)

如何用python做一个贺卡(中信RPA项目案例分享)

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:\Windows\Fonts\STXINWEI.TTF" 50) d=ImageDraw.Draw(txt) # 拼接需要在图片上填写的文本 name = "xxx" date_today = "2020-04-28" a = """ 亲爱的{0}: 叮。 确认收货:专属生日祝福! 快乐属于您,幸福属于您! 温馨属于您,好运属于您! 工作在忙碌,本能照顾您! \r\r\r\r分行工会 \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")

1.2 效果展示

1.2.1 原图展示

如何用python做一个贺卡(中信RPA项目案例分享)(1)

1.2.2 处理之后图片展示

如何用python做一个贺卡(中信RPA项目案例分享)(2)

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

2.1 代码部分

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

2.2 效果展示

2.2.1 原图展示

如何用python做一个贺卡(中信RPA项目案例分享)(3)

2.2.2 处理之后图片展示

如何用python做一个贺卡(中信RPA项目案例分享)(4)

3. 图片数据保存的方式

3.1 matplotlib模块

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

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

3.2 PIL

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

3.3 cv2

import cv2 import numpy as np cv2.imwrite("filename.png" np.zeros((10 10)))

3.4 scipy.misc

import scipy.misc misc.imsave('out.jpg' image_array)

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

import scipy.misc misc.toimage(image_array cmin=0.0 cmax=...).save('outfile.jpg')

猜您喜欢: