python 两张图片合成一张图片,并在指定位置加入文字

本文详细介绍如何使用Python的PIL库将两张图片合成一张,并在合成图片上添加中文描述。首先,通过调整图片大小和位置,将一张图片无缝融入另一张图片中指定区域。然后,利用cv2和PIL库解决中文乱码问题,实现在图片上添加中文文字的功能。

背景:开发要实现一个功能,类似做一个淘宝的合成图片,把一个图片放到另一个图片的部分区域,两个图片合成一张图片,在合成的图片上面,插入一段描述性的语句.实现步骤如下:

1两张图片合成一张,因为图片2比图片1还要大,所以要压缩后再进行合成

# coding:utf-8
"""
author:@
"""
from PIL import Image
import  os
p1=os.path.join(os.path.dirname(__file__),'files','1.png')
p2=os.path.join(os.path.dirname(__file__),'files','2.jpg')
#加载底图
base_img = Image.open(p1)
# 可以查看图片的size和mode,常见mode有RGB和RGBA,RGBA比RGB多了Alpha透明度
print (base_img.size, base_img.mode)
# box = (166, 64, 320, 337)  # 底图上需要P掉的区域
box = (500, 10, 880, 337)  # 底图上需要P掉的区域

#加载需要P上去的图片
tmp_img = Image.open(p2)

"压缩图片"
size =500,250
tmp_img.thumbnail(size)
tmp_img.save("2.jpg",'JPEG')
p3=os.path.join(os.path.dirname(__file__),'2.jpg')
tmp_img = Image.open(p2)
#这里可以选择一块区域或者整张图片
# region = tmp_img.crop((0,0,304,546)) #选择一块区域
#或者使用整张图片
region = tmp_img

#使用 paste(region, box) 方法将图片粘贴到另一种图片上去.
# 注意,region的大小必须和box的大小完全匹配。但是两张图片的mode可以不同,合并的时候回自动转化。如果需要保留透明度,则使用RGMA mode
#提前将图片进行缩放,以适应box区域大小
# region 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值