Pythonで画像を分割するやつ
表題の通り、
↑こんな画像を、こんなふうに分割↓
するやつです。
# -*- coding: utf-8 -*-
# 参考 : https://qiita.com/kino15/items/ece822ec20ad5e80e382
from PIL import Image
import os
import sys
import math
### 各定数の設定
# 縦方向分割数
SPLIT_HEIGHT = 16
# 横方向分割数
SPLIT_WIDTH = 16
# 分割元ファイルパス
ORIGINAL_FILE_PATH = "./cut.png"
# 出力フォルダ名
OUTPUT_PATH = "splitImage"
# ゼロ埋めするか?(するならTrue)
ZFILL_FLAG = True
def ImgSplit(im,w,h):
# 読み込んだ画像の高さと幅を指定分割数で割る
height = h / SPLIT_HEIGHT
width = w / SPLIT_WIDTH
# 縦の分割枚数
for h1 in range(SPLIT_HEIGHT):
# 横の分割枚数
for w1 in range(SPLIT_WIDTH):
w2 = w1 * width
h2 = h1 * height
print(w2, h2, width + w2, height + h2)
yield im.crop((w2, h2, width + w2, height + h2))
if __name__ == '__main__':
# 画像の読み込み
im = Image.open(ORIGINAL_FILE_PATH)
w = im.size[0]
h = im.size[1]
length = math.log10(SPLIT_HEIGHT * SPLIT_WIDTH) + 1
os.makedirs(OUTPUT_PATH, exist_ok=True)
for number, ig in enumerate(ImgSplit(im,w,h), 1):
# 出力
if ZFILL_FLAG:
ig.save(OUTPUT_PATH + "/" + str(number).zfill(int(length)) + ".PNG", "PNG")
else:
ig.save(OUTPUT_PATH + "/" + str(number) +".PNG", "PNG")
BoUoWのPython 3.6.3にて動作確認済み。
最近のコメント