Python 如何批量合成价格水印图片?

2020-05-11 20:26:48 +08:00
 cc7756789

网上看了不少教程,都没有满意的,不是全用一样的水印,就是大小、位置、分辨率、字体这些都没有介绍。现在的需求是这样:

产品主图需要打上不同价格的水印。 水印是一个简单的图形,扁平图案这种,在上面打上不同的价格。 但问题是不同货号的产品价格不一样。 用 PS 一个个做太烦了。 以前写过代码,现在干美工。基础知识是不用考虑的。 那么问题来了,python 有无好用方便的库。

把货号和对应价格写在 Excel 里。 但是一张透明背景的 png,如何把对应数字合成在上面,有字体要求(大小、字间距、颜色、字体家族),也有位置要求,以及大小,分辨率要求。 合成了价格水印之后,通过水印图片名称和主图图片名称匹配,然后再次合成到主图的某个位置。 以下是思维导图。

2482 次点击
所在节点    Python
6 条回复
iConnect
2020-05-11 20:39:11 +08:00
手写一个也不麻烦:读 Excel,然后 pillow 合成图片。
AlisaDestiny
2020-05-12 00:12:40 +08:00
就是说根据不同型号生成不同的价格水印,再贴到物品图上把。这也不难啊。手里有锤子还怕没办法处理各种形状的钉子。
niqiu8
2020-05-12 08:32:27 +08:00
活动打标??干嘛不用 ps 或者 ai 的变量功能? python 的话 pillow 可以实现
chaneyccy
2020-05-12 09:18:07 +08:00
没记错的话 PS 批处理也可以实现吧
cra2y4ngel
2020-05-12 09:35:17 +08:00
from PIL import Image,ImageDraw,ImageFont

im = Image.open('my_pic.png')

w, h = im.size

watermark = Image.new('RGBA', im.size) # 水印

draw = ImageDraw.Draw(watermark, 'RGBA')

# 设置文字大小

font_size = 180

# 设置字体
font_file = "C:\\Windows\\Font\\simsun.ttc"

font = ImageFont.truetype(font_file,font_size )

draw.text((0, 0), '这是水印内容', fill="#ff0000", font=font)
# 第一个参数:表示文字起始坐标
# 第二个参数:表示写入内容
# fill:表示颜色
# font:字体


# 旋转 45 度
watermark = watermark.rotate(-45, Image.BICUBIC)

# 透明的
alpha = watermark.split()[3]
alpha = ImageEnhance.Brightness(alpha).enhance(0.7)
watermark.putalpha(alpha)

# 合成新的图片
n = Image.composite(watermark, im, watermark)
n.save('new_watermark.png', 'PNG')
sunmker
2020-05-12 16:46:09 +08:00
使用 ImageMagick 写个小脚本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/670692

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX