MacのAutoMator アプリ と Pythonを使って、画像を左右2枚合わせて 1枚の画像にする方法です。
AutoMator
AutoMator で workflow を作る。
ワークフローが受け取る現在の項目 を 「イメージファイル」 に設定。
検索対象 を 「Finder.app」に設定。
「シェルスクリプトを実行」を選ぶ。
【pythonのパス】/python 【pythonファイルのパス】join_image.py "$@"
Python
「join_image.py」
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PIL import Image
import os
import sys
def main():
args_img = sys.argv
args_img.pop(0)
print(args_img)
if len(args_img) < 2:
return
output_path = os.path.dirname(args_img[0])
basename = ""
list_img = []
for i in range(len(args_img)):
img_path = args_img[i]
img = Image.open(img_path)
list_img.append(img)
if i % 2 == 0:
root, ext = os.path.splitext(img_path)
basename = os.path.splitext(os.path.basename(img_path))[0]
if i % 2 == 1:
list_img.reverse() #右 → 左の場合
get_concat_h_multi_blank(list_img).save(output_path + "/" + basename + "_" + ext)
list_img = []
def get_concat_h_blank(im1, im2, color=(0, 0, 0)):
dst = Image.new('RGB', (im1.width + im2.width, max(im1.height, im2.height)), color)
dst.paste(im1, (0, 0))
dst.paste(im2, (im1.width, 0))
return dst
def get_concat_h_multi_blank(im_list):
_im = im_list.pop(0)
for im in im_list:
_im = get_concat_h_blank(_im, im)
return _im
main()
Finderで、結合させたい画像を選択し、右クリックから AutoMatorのWorkFlow を実行する。
すると、2枚を結合した画像がファイルができる。
複数のファイルでも、一度に処理が可能で、100枚選択すれば、50枚の画像ができる。
参考サイト