Python 画像処理関係
画像変換
from PIL import Image import os files = os.listdir() for file in files: base,ext=os.path.splitext(file) if ext=='.png': input_im = Image.open(base + ".png") rgb_im = input_im.convert('RGB') rgb_im.save(base + ".jpg",quality=30) print("transaction finished" + base) os.remove(base+'.png')
余白削除
from PIL import Image, ImageChops import glob, os def trim(im, border): bg = Image.new(im.mode, im.size, border) diff = ImageChops.difference(im, bg) bbox = diff.getbbox() if bbox: return im.crop(bbox) def main(): lfig=[os.path.basename(r) for r in glob.glob('*.jpg')] for fig in lfig: img_org=Image.open(fig,'r') img_new=trim(img_org,'#ffffff') img_new.save(fig, 'JPEG', quality=100, optimize=True) img_new.show() #============== # Execution #============== if __name__ == '__main__': main()
画像結合
# 画像結合 # https://note.nkmk.me/python-pillow-concat-images/ from PIL import Image import os import glob def comb_h(im1, im2): dst = Image.new('RGB', (im1.width + im2.width, im1.height)) dst.paste(im1, (0, 0)) dst.paste(im2, (im1.width, 0)) return dst def comb_v(im1, im2): dst = Image.new('RGB', (im1.width, im1.height + im2.height)) dst.paste(im1, (0, 0)) dst.paste(im2, (0, im1.height)) return dst def multi_comb_h(im_list): _im=im_list.pop(0) for im in im_list: _im=comb_h(_im, im) return _im def multi_comb_v(im_list): _im=im_list.pop(0) for im in im_list: _im=comb_v(_im, im) return _im fig_01='fig_cont1.jpg'; im_01 = Image.open(fig_01) fig_02='fig_cont2.jpg'; im_02 = Image.open(fig_02) fig_03='fig_cont3.jpg'; im_03 = Image.open(fig_03) fig_04='fig_vect1.jpg'; im_04 = Image.open(fig_04) fig_05='fig_vect2.jpg'; im_05 = Image.open(fig_05) fig_06='fig_disp0.jpg'; im_06 = Image.open(fig_06) fnameF='fig_ax4.jpg' im_list_1=[im_01, im_02, im_03] im_list_2=[im_04, im_05, im_06] _im1=multi_comb_v(im_list_1) _im2=multi_comb_v(im_list_2) multi_comb_h([_im1, _im2]).save(fnameF) file_list = glob.glob('_*.jpg') for file in file_list: print("remove:{0}".format(file)) os.remove(file)
以 上