hanson1025 发表于 2022-3-3 12:19

图片加自定义文字水印功能,欢迎各路大神指教

公司每次出去办事,拿营业执照出去,都得打开photoshop在图于上加入仅适用于在某某地方办理什么业务使用,实在太麻烦,于是想着做个加文字水印功能源码,在网上找到很多都是加入一个LOGO文件,不适用于我这种每次水印对应文字都不同的工作
现在贴出源码,欢迎各路大神指教,关于水印位置调整其实没太搞懂,就一点一点的改位置试验出来,某些尺寸的图片可能会出现水印显示不全,但能力有限,大部分可以就行啦

from PIL import Image,ImageFont,ImageDraw
import wx,winreg
from tkinter import filedialog,messagebox

def water(img_name,word):
    a = Image.open(img_name).convert('RGBA')
    w,h = a.size
    b = Image.new('RGBA',a.size,(0,0,0,0))
    if w>h:
      max_size = int(w/30)
    else:
      max_size = int(h/30)
    fnt = ImageFont.truetype('pingfang-bold.otf',max_size)
    c = ImageDraw.Draw(b)
    c.text((w/5,h/2),word,font=fnt,fill=(0,0,0,50)) if w > h else c.text((h/10,w/2),word,font=fnt,fill=(0,0,0,50))
    b = b.rotate(40)
    d = Image.alpha_composite(a,b).convert('RGB')
    d.save(desktop_dir + '\\text.jpg')
    messagebox.showinfo(title='信息框',message='新图片已保存到桌面')

def get_word(hyg_word):
    file_path = filedialog.askopenfilename(title='请选择图片文件',filetypes=[('图片文件','*.jpg *.png *.jpg')])
    water(file_path,hyg_word)

desktop_dir = winreg.QueryValueEx(winreg.OpenKey(winreg.HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',),'Desktop')
app = wx.App()
box = wx.TextEntryDialog(None,'请输入欲插入的水印文字','输入窗口')
if box.ShowModal() == wx.ID_OK:
    get_word(box.GetValue())
app.MainLoop()

hanson1025 发表于 2022-3-3 14:16

图片加自定义文字水印功能

血情 发表于 2022-3-3 15:30

用这个软件,https://www.52pojie.cn/forum.php?mod=viewthread&tid=1572803&highlight=%C3%C0%CD%BC%D0%E3%D0%E3
页: [1]
查看完整版本: 图片加自定义文字水印功能,欢迎各路大神指教