背景
写博客、做学习笔记,总少不了图片的存在,而当图片边界是白色并且有多张图片续接在一起的时候,总让人难以分清图片的边界,以至于在阅读文章时体验极其的差,所以我决定编写一个可以批量为图片添加边框的脚本程序。
具体效果,可以看:《手把手教你在 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 服务(详细教程)》