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)))
則會有如下效果