python图片拼接
import os from PIL import Image #import pyautogui #import re ''' 把当前目录下的10*10张jpeg格式图片拼接成一张大图片 ''' #图片压缩后的大小 width_i = 200 height_i = 300 #每行每列显示图片数量 line_max = 10 row_max = 10 #参数初始化 all_path = [] num = 0 pic_max=line_max*row_max dirName = os.getcwd() for root, dirs, files in os.walk(dirName): for file in files: if "jpeg" in file: all_path.append(os.path.join(root, file)) toImage = Image.new('RGBA',(width_i*line_max,height_i*row_max)) for i in range(0,row_max): for j in range(0,line_max): pic_fole_head = Image.open(all_path[num]) width,height = pic_fole_head.size tmppic = pic_fole_head.resize((width_i,height_i)) loc = (int(i%line_max*width_i),int(j%line_max*height_i)) #print("第" + str(num) + "存放位置" + str(loc)) toImage.paste(tmppic,loc) num= num+1
if num >= len(all_path): print("breadk") break if num >= pic_max: break print(toImage.size) toImage.save('merged.png')
设计原因,以前听别人说用来把妹的
设计思路如下,
1.先用you-get 抓取jpeg格式文件放到目录下
2.写程序使得程序可以读取到当前目录下的所有jepg格式文件(类似于数据库)
3.对这些文件进行统一的压缩,做成宽200,高300的(当然如果按照原始比例缩小的话就会有乱序效果,大小图叠加而且不会有失真的情况发生)
4.创建一个画板,在对应的位置贴上压缩后的图片即可
=======
感悟其实写程序也就跟玩游戏一样,摸索出各种工具怎么用。然后用起来帮你做事就可以了
5X5 3X3
如果代码中的压缩改成按照等比例缩放如下
tmppic = pic_fole_head.resize((int(width/3),int(height/3)))
则会有如下效果
一步,两步,三步 走( ̄▽ ̄)~*