批量自动化给产品图片右上角添加logo(Python实现)

批量自动化给产品图片右上角添加logo(Python实现)

一、准备工作

1.安装 Python(如果尚未安装)

到官网下载并安装:https://www.python.org

安装时请☑️勾选 “Add Python to PATH”!

2.安装 Pillow 库

打开命令提示符(Win+R 输入 cmd),执行:
pip install pillow

3.准备文件夹结构(建议)

E:\pic_add_logo
├── logo.png ← 你的logo图(支持透明PNG最好)
├── product_images\ ← 里面放所有要加logo的产品图
└── output_images\ ← 输出保存新图片的文件夹(你可先新建好)

二、Python 脚本代码

新建一个 add_logo.py 文件(用记事本或 VS Code),粘贴以下内容:

from PIL import Image
import os

# 设置路径
input_folder = "E:/product_images"
output_folder = "E:/output_images"
logo_path = "E:/logo.png"

# 加载并缩放 logo
logo = Image.open(logo_path).convert("RGBA")
scale_factor = 0.8
new_size = (
    int(logo.width * scale_factor),
    int(logo.height * scale_factor)
)
logo = logo.resize(new_size, Image.Resampling.LANCZOS)
logo_width, logo_height = logo.size

# 批量处理每张图片
for filename in os.listdir(input_folder):
    if filename.lower().endswith((".png", ".jpg", ".jpeg", ".bmp")):
        product_path = os.path.join(input_folder, filename)
        image = Image.open(product_path).convert("RGBA")

        # 放置位置(右上角,带边距)
        padding = 10
        position = (image.width - logo_width - padding, padding)

        # 合成图像
        combined = Image.new("RGBA", image.size)
        combined.paste(image, (0, 0))
        combined.paste(logo, position, mask=logo)

        # 保存输出(转为 JPG)
        output_path = os.path.join(output_folder, filename)
        combined.convert("RGB").save(output_path)
        print(f"✅ 已处理: {filename}")

print(" 所有图片处理完成!")

三、运行脚本

打开命令提示符(Win+R → cmd);

运行脚本:add_logo.py

效果:
批量自动化给产品图片右上角添加logo(Python实现)_第1张图片

批量自动化给产品图片右上角添加logo(Python实现)_第2张图片

四、白背景,产品图左下,logo右上【进阶】

适用于:产品图比较满,想要logo不遮挡产品图
批量自动化给产品图片右上角添加logo(Python实现)_第3张图片

E:\pic_add_logo
├── blank.jpg ← 你的白底图(白色jpg)
├── logo.png ← 你的logo图(支持透明PNG最好)
├── product_images\ ← 里面放所有要合并的产品图
└── output_images\ ← 输出保存新图片的文件夹

from PIL import Image
import os

# 路径配置
input_folder = r"E:\pic_add_logo\product_images"
output_folder = r"E:\pic_add_logo\output_images"
logo_path = r"E:\pic_add_logo\logo.png"
blank_path = r"E:\pic_add_logo\blank.jpg"

# 缩放比例设置(可自定义)
logo_scale_factor = 0.6
product_scale_factor = 0.8

# 加载底图和 logo 图
blank = Image.open(blank_path).convert("RGBA")
logo = Image.open(logo_path).convert("RGBA")

# 缩放 logo 图
logo = logo.resize(
    (int(logo.width * logo_scale_factor), int(logo.height * logo_scale_factor)),
    Image.Resampling.LANCZOS
)
logo_width, logo_height = logo.size
blank_width, blank_height = blank.size

# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)

# 批量处理产品图
for filename in os.listdir(input_folder):
    if filename.lower().endswith((".png", ".jpg", ".jpeg", ".bmp")):
        product_path = os.path.join(input_folder, filename)
        product_img = Image.open(product_path).convert("RGBA")

        # 缩放产品图
        product_img = product_img.resize(
            (int(product_img.width * product_scale_factor), int(product_img.height * product_scale_factor)),
            Image.Resampling.LANCZOS
        )
        product_width, product_height = product_img.size

        # 复制底图用于合成
        combined = blank.copy()

        # 放产品图(左下角)
        pos_product = (10, blank_height - product_height - 10)
        combined.paste(product_img, pos_product, mask=product_img)

        # 放 logo 图(右上角)
        pos_logo = (blank_width - logo_width - 10, 10)
        combined.paste(logo, pos_logo, mask=logo)

        # 保存输出图像
        output_path = os.path.join(output_folder, filename)
        combined.convert("RGB").save(output_path)
        print(f"✅ 已完成: {filename}")

print(" 全部图片处理完毕!")

Tips:
如果路径与文中相同,可直接使用exe程序,双击即可合并,对小白友好:
add_logo.exe

你可能感兴趣的:(python,python,开发语言,数据库)