python+PIL批量制作淘宝主图(头图)及满屏水印添加

本文介绍了如何利用Python的PIL库进行图片批量化处理,以制作淘宝主图并添加标题遮罩效果。通过自动计算裁剪中心点,适应不同数量的图片排版,并能根据输入的标题信息定制化标题位置,实现模糊背景与标题的完美融合。文章展示了从一到八张图片的不同排列效果,以及实现这一功能的核心代码逻辑。
摘要由CSDN通过智能技术生成

导读

项目中需要用到图片批量化处理,所以玩了下PIL做了个简单的小项目,解放双手批量制作淘宝主图的功能

任务目标

  • 根据传入的图片数量,自动放大缩小寻找计算可对齐的中心点进行裁切
  • 按照传入图片数量,定制化排版图片
  • 生成模糊背景,以及标题遮罩,根据输入的文字标题信息,自动定位排版标题位置

效果预览及核心代码逻辑

  1. 如果只传入一张图片的话,展示效果,包括核心代码实现
    在这里插入图片描述
# 如果传入一张图片 就复制一份在中间缩略 另外一张底部平铺模糊
if(num == 1):
	new_im = self.resizeImage(ims[0],bw,bh)
	ft.paste(new_im, (0, 0)) # 模糊底图
	pass
  1. 如果传入两张图片的话,展示效果,包括核心代码实现

在这里插入图片描述

# 如果传入两张图片 就在对角各展示一张
elif(num == 2):
	scale = 0.5
	new_im_1 = self.resizeImage(ims[0],int(bw*scale),int(bh*scale))
	new_im_1_copy = new_im_1.copy()
	new_im_2 = self.resizeImage(ims[1],int(bw*scale),int(bh*scale))
	new_im_2_copy = new_im_2.copy()

	ft.paste(new_im_1, (-lineW, -lineW)) #左上
	ft.paste(new_im_2, (int(bw*scale)+lineW, -lineW)) #右上
	ft.paste(new_im_2, (-lineW, int(bh*scale)+lineW)) #左下
	ft.paste(new_im_1, (int(bw*scale)+lineW, int(bh*scale)+lineW)) #右下
	pass
  1. 如果传入的是三张图片 横着两张 竖着三张排列
    在这里插入图片描述
# 如果传入的是三张图片 
elif(num == 3):

	xw = int(bw/2)
	xh = int(bh/num)

	new_im_1 = self.resizeImage(ims[0],xw,xh)
	new_im_2 = self.resizeImage(ims[1],xw,xh)
	new_im_3 = self.resizeImage(ims[2],xw,xh)

	ft.paste(new_im_1, (-lineW, -lineW))  #左上
	ft.paste(new_im_3, (xw+lineW, -lineW)) #右上
	ft.paste(new_im_2, (-lineW, xh+lineW)) #中左
	ft.paste(new_im_1, (xw+lineW, xh+lineW)) #中右
	ft.paste(new_im_3, (-lineW, xh*2+lineW*2)) #下左
	ft.paste(new_im_2, (xw+lineW, xh*2+lineW*2)) #下右
  1. 如果传入的是四张图片
    在这里插入图片描述
# 如果传入的是四张图片 
elif(num == 4):

	xw1 = int(bw*0.6)
	xh1 = int(bh*0.5)
	xw2 = int(bw*0.4)
	xh2 = int(bh*0.4)
	xh3 = int(bh*0.6)

	new_im_1 = self.resizeImage(ims[0],xw1,xh1)
	new_im_2 = self.resizeImage(ims
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的小英短

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值