damyarou

python, GMT などのプログラム

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)

以 上