damyarou

python, GMT などのプログラム

Python jpg画像を縮小保存しhtmlで表示

タイトル通り、jpg画像を縮小保存しhtmlで表示する。

import glob
import os
from PIL import Image
import os

def select_pic():
    path = '*.jpg'
    # 現フォルダ内にあって拡張子がJPGのファイル名を取得
    file_list = glob.glob(path)
    print(file_list)
    return file_list

def process(file_list):
    print(file_list)
    #for frameR in file_list:
    for i in range(len(file_list)):
        fnameR=file_list[i]
        print(fnameR)
        # 元画像の読み込み
        originalImg = Image.open(fnameR)
        # 元画像のサイズを取得
        width1, height1 = originalImg.size
        # サムネイル作成
        width2=600
        height2=width2*height1/width1
        originalImg.thumbnail((int(width2), int(height2)), Image.ANTIALIAS)
        name=fnameR.replace('.jpg','')
        fnameW='600_'+name+'.jpg'
        # 保存
        originalImg.save(fnameW)


def make_html():
    filenames = os.listdir('./')
    imgl=[]
    ww=[]
    hh=[]
    for fname in sorted(filenames):
        if fname[0:4]=='600_':
            print(fname)
            im=Image.open(fname)
            w=im.size[0]
            h=im.size[1]
            imgl=imgl+[fname]
            ww=ww+[w]
            hh=hh+[h]
    f=open('maggie.html','w')
    print('<html>',file=f)
    print('<body>',file=f)
    print('<table>',file=f)
    n=len(imgl)
    m=int(n/5)+1
    k=-1
    for i in range(0,m):
        print('<tr>',file=f)
        for j in range(0,5):
            k=k+1
            if k<=n-1:
                pic=imgl[k]
                w1=200
                h1=int(hh[k]/ww[k]*200)
                print('<td align="center"><img src="'+pic+'" alt="pic" width="'+str(w1)+'", height="'+str(h1)+'"><br><a href="'+pic+'">'+pic+'<a></td>',file=f)
            else:
                print('<td></td>',file=f)
        print('</tr>',file=f)
    print('</table>',file=f)
    print('</body>',file=f)
    print('</html>',file=f)
    f.close()

def main():
    file_list=select_pic()
    process(file_list)
    make_html()


if __name__ == '__main__':
    main()

以 上