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)

近期文章

发表评论