【Python】画像の切り抜き・貼り付け
今回はPythonで画像の切り抜きや貼り付けの操作について書きます。
環境 Windows10、Python3.7.6
画像はこのカレーの画像を使っていきます。 美味しそうですよね。実際美味しかった。
モジュールインポート
from PIL import Image
Pillowモジュールを使います。
もしモジュールがインストールされていない場合はインストールはpipで行います。
pip install pillow
画像の読み込み
test_im = Image.open('IMG_2986.png')
ファイル名を指定してopen関数で読み込めます。
pngやjpgなどに対応しています。
画像の切り抜き
cropped_im = test_im.crop((250, 600, 450, 900)) cropped_im.save('cropped.png')
crop関数で範囲を指定して切り抜きます。
save関数でファイル名を指定して保存します。
画像のコピー
copy_im = test_im.copy()
copy関数でopenで取得した画像をコピーできます。
画像の貼り付け
copy_im.paste(cropped_im, (0, 0)) copy_im.paste(cropped_im, (250, 300)) copy_im.save('pasted.png');
paste関数で別の画像を貼り付けることができます。
テストコード
画像を読み込み、切り抜きしたファイルとそれを元の画像に貼り付けたものを別名で保存。
切り抜いた画像を指定回数貼り付けます。
from PIL import Image test_im = Image.open('IMG_2986.jpg') # 切り抜き cropped_im = test_im.crop((250, 600, 450, 900)) cropped_im.save('cropped.png') copy_im = test_im.copy() copy_im.paste(cropped_im, (0, 0)) copy_im.paste(cropped_im, (250, 300)) copy_im.save('pasted.png'); # 切り抜いた画像を指定回数貼り付け width, height = cropped_im.size width_count = 5 height_count = 4 new_im = Image.new('RGBA', (width * width_count, height * height_count), 'white') for x_idx in range(width_count): for y_idx in range(height_count): new_im.paste(cropped_im, (x_idx * width, y_idx * height)) new_im.save('paste_continue.png')
まとめ
なんか飯テロ記事になってる気がしなくもないですが、 画像を切り貼り簡単にできるので大量に処理する場合はよさそうです。