Python实现拼接多张图片的方法
本篇章节讲解Python实现拼接多张图片的方法。分享给大家供大家参考。具体分析如下: 好了,如果将PDF文档转换成其他的图片格式呢?我建议windowns下可用Adobe Acrobat X Pro软件完成这个工作,操作步骤如下面两图所示。注意在图二中一定要自己指定一个分辨率,不用用自动的,否则生成的图片大小会有差异的。就我的多次尝试来看,分辨率设置得太大了,虽然图片放大后仍然很清晰,但是贴到博文中仍然需要不断地调整大小,选择“59.06像素/厘米”就非常合适了。需要注意的是,博客的主题要选那种供博文显示的页面比较宽的,否则贴图片上去也不怎么好看的。 复制代码 代码如下: #!/usr/bin/python3
#encoding=utf-8 import numpy as np from PIL import Image import glob,os if __name__=='__main__': prefix=input('Input the prefix of images:') files=glob.glob(prefix+'_*') num=len(files) filename_lens=[len(x) for x in files] #length of the files min_len=min(filename_lens) #minimal length of filenames max_len=max(filename_lens) #maximal length of filenames if min_len==max_len:#the last number of each filename has the same length files=sorted(files) #sort the files in ascending order else:#maybe the filenames are:x_0.png ... x_10.png ... x_100.png index=[0 for x in range(num)] for i in range(num): filename=files[i] start=filename.rfind('_')+1 end=filename.rfind('.') file_no=int(filename[start:end]) index[i]=file_no index=sorted(index) files=[prefix+'_'+str(x)+'.png' for x in index] print(files[0]) baseimg=Image.open(files[0]) sz=baseimg.size basemat=np.atleast_2d(baseimg) for i in range(1,num): file=files[i] im=Image.open(file) im=im.resize(sz,Image.ANTIALIAS) mat=np.atleast_2d(im) print(file) basemat=np.append(basemat,mat,axis=0) final_img=Image.fromarray(basemat) final_img.save('merged.png') 希望本文所述对大家的Python程序设计有所帮助。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |