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()