damyarou

python, GMT などのプログラム

Python フォルダ内のJPGファイルを縮小しhtmlで表示

記事の最後に行く

フォルダ内の全JPGファイルを、幅600pixelに縮小し、600_***.jpg という名前で保存します。 また、0_small.html というファイルを作成し、縮小画像を一覧形式で閲覧できるようにします。

import glob
import os.path
from PIL import Image


def select_pic():
    # 現フォルダ内の拡張子JPGのファイル名を取得
    path = '*.JPG'
    flist = glob.glob(path, recursive=True)
    flist.sort()
    return flist


def process(flist):
    rlist=[]
    for fnameR in flist:
        org = Image.open(fnameR) # 元画像読み込み
        width1, height1 = org.size # 元画像サイズ取得
        # サムネイル作成
        width2=600
        height2=width2*height1/width1
        org.thumbnail((int(width2), int(height2)), Image.ANTIALIAS)
        name, ext = os.path.splitext(fnameR) # ファイル名・拡張子名取得
        fnameW='600_'+name+'.jpg' # 保存ファイル名指定
        org.save(fnameW) # 保存
        rlist=rlist+[fnameW]
        print(fnameR, fnameW)
    return rlist


def make_html(rlist):
    # htmlファイル作成
    fnameW='0_small.html'
    f=open(fnameW,"w")
    print('<html>',file=f)
    print('<body>',file=f)
    print('<table>',file=f)
    col=5
    wthumb=200
    k=-1
    for i in range(0,int(len(rlist)/col)+1):
        print('<tr>',file=f)
        for j in range(0,col):
            k=k+1
            if k<len(rlist):
                pic=rlist[k]
                print('<td align="center"><img src={0:} alt="pic" width={1:d}>'\
                '<br><a href={2:}>{3:}<a></td>'.format(pic,wthumb,pic,pic),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():
    flist=select_pic()
    rlist=process(flist)
    make_html(rlist)


if __name__ == '__main__':
    main()

Thank you.

記事の先頭に行く