python程序后面如何再加一个图形代码_使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)...

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合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)

本文地址: http://www.cppcns.com/jiaoben/python/311363.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值