吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5012|回复: 113
收起左侧

[原创工具] 批量图片水印工具

    [复制链接]
小林子Vip 发表于 2024-12-1 17:36
本帖最后由 小林子Vip 于 2024-12-2 16:05 编辑

做出这个工具的起因是帮别人省掉PS的时间,所以才有现在这个工具。发给对方后,现在打算发布到52论坛贡献自己的力量。

软件名称:批量图片水印工具
当前版本:1.0.0
软件大小:12.29mb
编程语言:python
运行环境:Windows
下载链接:https://share.weiyun.com/2R9RcOeB
杀毒引擎查杀结果:
PS:采用pyinstaller打包,存在极个别杀毒软件误报情况,本软件绝不带病毒纯属误报,若不放心请虚拟机运行。
工具开源链接:https://www.52pojie.cn/forum.php?mod=viewthread&tid=1987559
PixPin_2024-12-01_17-33-09.png 运行截图:
9467fb22-f8c4-4d75-90b8-9f15ca6e54f0.png e0601436-a9a1-40df-8529-b8d4990949de.png QQ20241201-171806.png 微信截图_20241201171748.png

免费评分

参与人数 27吾爱币 +28 热心值 +25 收起 理由
kyokusanagi2000 + 1 热心回复!
xiongyouhao + 1 + 1 我很赞同!
suishuo + 1 谢谢@Thanks!
lough_007 + 1 + 1 谢谢@Thanks!
wkiwi + 1 + 1 热心回复!
Yliiiii + 1 + 1 谢谢@Thanks!
leechjia + 1 + 1 谢谢@Thanks!
binghf + 1 我很赞同!
SenseView + 1 + 1 感谢为爱发电的大佬!
抱薪风雪雾 + 1 + 1 谢谢@Thanks!
jdhnp + 1 + 1 谢谢@Thanks!
Jerryice + 1 我很赞同!
february + 1 + 1 我很赞同!
lteng007 + 1 + 1 谢谢@Thanks!
FF91 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Milonc + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zl52 + 1 谢谢@Thanks!
pjj811885 + 1 + 1 我很赞同!
helh0275 + 1 + 1 谢谢@Thanks!
dzzZOne + 1 + 1 谢谢@Thanks!
幸富 + 1 + 1 我很赞同!
shtimi + 1 + 1 谢谢@Thanks!
manglang + 1 + 1 我很赞同!
LqS1 + 1 + 1 用心讨论,共获提升!
ty256949 + 1 + 1 谢谢@Thanks!
西岭雪 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

manglang 发表于 2024-12-1 21:09
楼主的程序强制设置了图片尺寸,可是我习惯于先裁剪后加水印,所以楼主的程序把我的图片缩小了。于是我利用星火大模型重写了代码,运行正常:

[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import os
from PIL import Image, ImageEnhance
from tkinter import Tk, filedialog, Label, Entry, Button, StringVar, IntVar, messagebox
 
def add_watermark(input_folder, watermark_path, output_folder, position, transparency):
    watermark = Image.open(watermark_path).convert("RGBA")
    alpha = watermark.split()[3]
    alpha = ImageEnhance.Brightness(alpha).enhance(transparency / 100.0)
    watermark.putalpha(alpha)
     
    for filename in os.listdir(input_folder):
        if filename.endswith(('.png', '.jpg', '.jpeg')):
            image_path = os.path.join(input_folder, filename)
            image = Image.open(image_path).convert("RGBA")
             
            if position == "左上角":
                position = (0, 0)
            elif position == "右上角":
                position = (image.width - watermark.width, 0)
            elif position == "左下角":
                position = (0, image.height - watermark.height)
            elif position == "右下角":
                position = (image.width - watermark.width, image.height - watermark.height)
             
            image.paste(watermark, position, mask=watermark)
            output_path = os.path.join(output_folder, filename)
            image.save(output_path, 'PNG')
     
    messagebox.showinfo("完成", "所有图片已成功添加水印!")
 
def select_folder():
    root = Tk()
    root.withdraw()
    folder_selected = filedialog.askdirectory()
    root.destroy()
    return folder_selected
 
def main():
    root = Tk()
    root.title("批量添加水印")
     
    Label(root, text="输入文件夹路径:").grid(row=0, column=0)
    input_folder = StringVar()
    Entry(root, textvariable=input_folder, width=50).grid(row=0, column=1)
    Button(root, text="选择", command=lambda: input_folder.set(select_folder())).grid(row=0, column=2)
     
    Label(root, text="水印文件路径:").grid(row=1, column=0)
    watermark_path = StringVar()
    Entry(root, textvariable=watermark_path, width=50).grid(row=1, column=1)
    Button(root, text="选择", command=lambda: watermark_path.set(filedialog.askopenfilename())).grid(row=1, column=2)
     
    Label(root, text="输出文件夹路径:").grid(row=2, column=0)
    output_folder = StringVar()
    Entry(root, textvariable=output_folder, width=50).grid(row=2, column=1)
    Button(root, text="选择", command=lambda: output_folder.set(select_folder())).grid(row=2, column=2)
     
    Label(root, text="水印位置:").grid(row=3, column=0)
    position = StringVar()
    position.set("右下角")
    Entry(root, textvariable=position, width=10).grid(row=3, column=1)
     
    Label(root, text="透明度(%):").grid(row=4, column=0)
    transparency = IntVar()
    transparency.set(100)
    Entry(root, textvariable=transparency, width=10).grid(row=4, column=1)
     
    Button(root, text="开始处理", command=lambda: add_watermark(input_folder.get(), watermark_path.get(), output_folder.get(), position.get(), transparency.get())).grid(row=5, columnspan=3)
     
    root.mainloop()
 
if __name__ == "__main__":
    main()

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
小林子Vip + 1 + 1 用心讨论,共获提升!

查看全部评分

schtg 发表于 2024-12-2 05:53
头像被屏蔽
zsj727627171 发表于 2024-12-2 07:31
52soft 发表于 2024-12-2 07:32
有源代码吗?
西岭雪 发表于 2024-12-1 17:45
感谢发布原创作品,吾爱破解论坛因你更精彩!
ty256949 发表于 2024-12-1 17:46
不错的软件,收藏了,支持原创。
hanbazhen 发表于 2024-12-1 18:14
楼主能不能加个预览效果,看效果后再导出
tutu2 发表于 2024-12-1 18:19
意义不大,现在的水印基本都得ps
jzwxc2022 发表于 2024-12-1 18:30
好东西,收藏
rl910407 发表于 2024-12-1 18:41
极个别杀毒软件误报情况,本软件绝不带病毒纯属误报,若不放心请虚拟机运行。
h96639339 发表于 2024-12-1 18:45
感谢楼主分享,已收藏
 楼主| 小林子Vip 发表于 2024-12-1 18:46
tutu2 发表于 2024-12-1 18:19
意义不大,现在的水印基本都得ps

只适合要求不高快速打水印的,要求不高的可以试试。其实python自定义比较高一点,水印的坐标啥的,源码回头开源,我再优化优化
 楼主| 小林子Vip 发表于 2024-12-1 18:47
hanbazhen 发表于 2024-12-1 18:14
楼主能不能加个预览效果,看效果后再导出

我这个是批量的,你这个单张的我在研究研究。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-4-7 08:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表