前几天在整理身份证,拍了很多都是两张,在打印时候又需要合并成一张,量少还比较好处理,多了就非常麻烦,于是就写了个小工具,几百张可以自动合并
合并后效果
当然长宽可以自己调节
废话不多说,直接贴上代码
[Python] 纯文本查看 复制代码 import PIL.Image as Image
import os
Image_Path = r'D:/身份证/原图/'# 存放数据的地址
Image_Format = ['.jpg','.JPG','.png','.PNG'] # 图片格式
Image_Size = 1024 # 每张小图片的大小,可自行调节大小
Image_Row = 2 # 图片间隔,也就是合并成一张图后,一共有几行
Image_Column = 1 # 图片间隔,也就是合并成一张图后,一共有几列
Image_Save_Path = './IDcaed_Concat/'# 储存拼接图片的文件夹
if not os.path.exists(Image_Save_Path):
os.makedirs(Image_Save_Path)
Image_Names = [name for name in os.listdir(Image_Path)
for item in Image_Format
if os.path.splitext(name)[1] == item ]#判断文件夹下的图片是否是图片格式
# 简单的对于参数的设定和实际图片集的大小进行数量判断
Image_Sum = Image_Row * Image_Column
if len(Image_Names) % Image_Sum!=0:#说明图片数量不对
raise ValueError("合成图片的参数和要求的数量不能匹配!")
index=1
for i in range(1,len(Image_Names)+1,Image_Sum):
#print(i)
to_image = Image.new('RGB',(Image_Column*Image_Size,Image_Row*Image_Size))
for x in range(1,Image_Row+1):#Image_Row行
for y in range(1,Image_Column+1):
from_image = Image.open(Image_Path + Image_Names[Image_Column*(x-1)+y-1+i-1]).resize(
(Image_Size,Image_Size),Image.ANTIALIAS)
to_image.paste(from_image, ((y - 1) * Image_Size, (x - 1) * Image_Size))
Image_Save_Path_Index=Image_Save_Path+str(index)+'.jpg'
to_image.save(Image_Save_Path_Index)
index=index+1
成品也贴上,不会编码的直接用成品,图片放D盘d:/身份证/原图 这个文件夹,会改的自己改代码也可以
链接: https://pan.baidu.com/s/1EMvIBH5m2zKFo4yh-c6HOQ 提取码: kj2j 复制这段内容后打开百度网盘手机App,操作更方便哦
工具可以自己修改,可以使用的地方非常多,不一定用来处理sfz 只是提供一种思路,反正可以节约大量工作时间
|