護照、身份證等證件申辦,常常都還是需要提供實體照片~
想要透過便利商店洗大頭照的照片,查起來超貴,但是 4*6 的照片相對便宜很多~
於是~ 來將大頭照合進 4x6 的照片,再去洗出來,在靠剪刀即可~
照片尺寸(英吋) 與 實際尺寸(厘米) (300dpi)
- 10x15:25.4x38.1
- 10x12:25.4x30.5
- 8x10 :20.3x25.4
- 6x8 :15.2x20.3
- 5x8 :12.7x20.3
- 5x7 :12.7x17.7
- 4x6 :10.1x15.2
- 3.5x5:8.9x12.7
Python 將大頭照平鋪在 4x6 的相片圖檔
- 1吋照片的尺寸:
- 2.5cm * 3.5cm
- 295px * 413px
- 2吋照片的尺寸:
- 3.5cm * 5.3cm
- 413px * 626px
其它常用照片尺寸:
- 照片類型(英吋) 尺寸(厘米)
- 身份證 (22mm x 32mm)
- 駕駛證 (22mm x 32mm)
- 黑白小一寸 (22mm x 32mm)
- 彩色小一寸 (27mm x 38mm)
- 彩色大一寸 (40mm x 55mm)
- 普通證件照 (33mm x 48mm)
查到我以前做這件事情,是使用:軟體: PhotoCap 輕鬆製作大頭照
不過現在沒有 Windows 可以用,得要使用 GIMP 或者 靠程式直接生成~
發現靠程式才是最快的,直接把照片檔案進去,直接執行輸出就是成品~
資料準備
- your-photo.png 大頭照照片檔案
- passport_photos_4x6.jpg 輸出結果
程式(passport-2inch-to-4x6.py)
#!/usr/bin/python3 # 將 PNG 的照片縮成 2吋,再排入 4*6 的照片方便一次印出 # pip install Pillow from PIL import Image # 載入大頭照 original_image = Image.open("your-photo.png") # 設定解析度(300 DPI)與尺寸 dpi = 300 passport_width = int(2 * dpi) # 2 吋寬 passport_height = int(2 * dpi) # 2 吋高 passport_size = (passport_width, passport_height) passport_canvas = Image.new("RGB", passport_size, "white") # 2x2 吋的白底畫布 # 保持原圖比例 縮放以塞入 2x2 吋畫布 original_aspect = original_image.width / original_image.height target_aspect = passport_width / passport_height if original_aspect > target_aspect: # 原圖過寬,限制寬度 new_width = passport_width new_height = int(passport_width / original_aspect) else: # 原圖過高,限制高度 new_height = passport_height new_width = int(passport_height * original_aspect) resized_image = original_image.resize((new_width, new_height), Image.Resampling.LANCZOS) # 縮圖 # 將縮圖貼在畫布中央( // = math.floor(取整數、商數) ) offset_x = (passport_width - new_width) // 2 offset_y = (passport_height - new_height) // 2 passport_canvas.paste(resized_image, (offset_x, offset_y)) # 建立一張 4x6 吋的白底畫布 output_width = int(6 * dpi) output_height = int(4 * dpi) output_image = Image.new("RGB", (output_width, output_height), "white") # 計算可放置的行數與列數 cols = output_width // passport_width rows = output_height // passport_height # 貼上多張 2x2 照片 for row in range(rows): for col in range(cols): x = col * passport_width y = row * passport_height output_image.paste(passport_canvas, (x, y)) # 儲存輸出圖片 output_image.save("passport_photos_4x6.jpg", dpi=(300, 300))