背景

写博客、做学习笔记,总少不了图片的存在,而当图片边界是白色并且有多张图片续接在一起的时候,总让人难以分清图片的边界,以至于在阅读文章时体验极其的差,所以我决定编写一个可以批量为图片添加边框的脚本程序。

具体效果,可以看:《手把手教你在 Huawei MatePad Pro 上安装 GMS 服务(详细教程)》

实现思路

获得原图尺寸 --> 生成一张比原图大的新纯色图片 --> 以图片中心点为对齐点,将原图叠加到新图的上面。

实现代码

在图片处理上,这里主要使用 Pillow 这个图片库,所以,先执行下方命令安装这个库:

pip install Pillow    # Python 2.x
pip3 install Pillow    # Python 3.x

接着新建一个 Python 文件(如: mian.py),然后将以下代码添加至文件内并保存:

from PIL import Image
import os
from time import sleep


def get_images(img_dir):
    img_files = []
    img_suffix = ["jpg", "jpeg", "png"]
    for img in os.listdir(img_dir):
        if img.split(".")[-1] in img_suffix:
            img_files.append(os.path.join(os.path.abspath(img_dir), img))
    return img_files


def image_border(image_file, save_path, width=3, color=(0, 0, 0)):
    # 读取图片
    img_ori = Image.open(image_file)
    w = img_ori.size[0]
    h = img_ori.size[1]

    # 添加边框
    w += 2*width
    h += 2*width
    img_new = Image.new(mode='RGB', size=(w, h), color=color)   # 创建一张新图
    img_new.paste(img_ori, box=(width, width))    # 将原图粘贴到新图

    # 保存图片
    path, file = os.path.split(image_file)
    img_new.save(os.path.join(save_path, file))

    # 关闭图片
    img_new.close()


if __name__ == "__main__":
    print("正在转换中...")
    images_path = "./src_Images"
    # 创建新图片存储目录
    save_path = "./dst_Images"
    if not os.path.exists(save_path):
        os.mkdir(save_path)
    # 处理图片
    for image in get_images(images_path):
        image_border(image_file=image, save_path=save_path, width=3)
    print("转换完成!\n新文件存放目录:当前目录下的【" + save_path + "】内!")
    print("程序将在 5s 后退出...")
    sleep(5)

新建一个文件夹,并将上面创建的Python文件(main.py)放至其内,接着再在文件夹内新建一个名为 scr_Images 的文件夹。

接着,你只需将要添加边框的图片放在 scr_Images 文件夹内,接着运行该 Python 文件(main.py),程序执行完毕后,会在文件夹内创建一个 dst_Images 的文件夹,添加边框后的图片就存放在其内。

执行效果

添加到文章后的效果,可以看:《手把手教你在 Huawei MatePad Pro 上安装 GMS 服务(详细教程)》

最后修改:2021 年 09 月 12 日 09 : 30 PM