16.如何用ChatGPT 给图片批量加水印
这是零基础玩ChatGPT+Python——办公自动化的第16节:利用ChatGPT生成Python代码,给图片批量加水印。
教程目的: 初步掌握用ChatGPT批量操作图片,节省时间
阅读对象: 需要用ChatGPT提高工作效率、摆脱重复无聊工作、无Python基础、或Python入门者。
场景:
日常工作中,自己辛辛苦苦拍摄、制作的图片,如果不加水印,很容易被人盗用。
用常规的方法,加水印又比较耗时。
而使用ChatGPT生成Python代码,给图片加水印,省时省力,可以实现一分钟给几百张图片批量加水印。
一、软件准备
1.1 ChatGPT账号。
如果没有账号,嫌麻烦,可以在银河录像局的“AI百宝箱”里购买: https://nf.video/yqyfZ
也可以自己免费注册: http://yesaiwen.com/chatgpt-plus-register-yourself/
1.2 vscode:免费。 参考安装教程: http://yesaiwen.com/how-to-use-the-python-code-generated-by-chatgpt/
二、素材准备
在下面的这个链接里,找到相应的素材地址,下载并解压:
http://yesaiwen.com/chatgpt-python-resources/
练习素材内容:
9个图片和1个水印文件
下载后,解压,获得文件及文件夹的位置。例如:
文件夹位置::C:\Users\seven2024\Desktop\text
三、操作步骤
安装模块
首先需要在vscode里,安装1个模块。 在vscode的终端里,输入这1个命令,后按回车:
pip install pillow
3.1.打开ChatGPT,输入提示词(Prompt)
参考提示词:
做练习的时候,要把文件夹位置和水印文件的位置,替换为自己电脑上的文件夹位置。
你作为一个Python程序员,按照我的要求生成代码
任务:把文件夹里的图片,都加上水印。水印位置在图片的右上方
文件夹位置:C:\Users\seven2024\Desktop\text
水印文件位置:"C:\Users\seven2024\Desktop\text\叶赛文-水印.png"
3.2.复制代码,并粘贴到vscode里
在vscode里,新建一个jupyter文件:
① 复制ChatGPT里给出的代码,粘贴到vscode里
② 点击“运行”
③ 当下面出现绿勾时,说明代码运行成功。
3.3 检查结果
4.2秒后,会发现所有的图片右上角,都打上了水印“叶赛文”。
四、小结
这个功能,ChatGPT实现起来挺简单的。
麻烦的是水印的大小控制。 可以直接用Windows自带的图片裁剪功能,调整图片大小比例。
五、参考源码
import os
from PIL import Image
def add_watermark(image_path, watermark_path, output_path):
base_image = Image.open(image_path).convert("RGBA")
watermark = Image.open(watermark_path).convert("RGBA")
# 把水印图片放置在右上角,可以修改为你希望的位置
position = (base_image.width - watermark.width, 0)
transparent = Image.new('RGBA', base_image.size, (0,0,0,0))
transparent.paste(base_image, (0,0))
transparent.paste(watermark, position, mask=watermark)
transparent.save(output_path, 'PNG')
directory_path = "C:\\Users\\seven2024\\Desktop\\text"
watermark_path = "C:\\Users\\seven2024\\Desktop\\text\\叶赛文-水印.png"
for filename in os.listdir(directory_path):
if filename.endswith((".jpg", ".png")): # 可以添加其他图片格式
image_path = os.path.join(directory_path, filename)
output_path = os.path.join(directory_path, "watermarked_" + filename)
add_watermark(image_path, watermark_path, output_path)
发表评论