HDD 内の画像を一覧表示する
今までに撮った写真を HDD に貯めているが 整理のため、年月毎にフォルダ分けしてるので、全部の写真を一覧表示できない。
そのためにわざわざアプリを入れるのも何だしなぁ…と思い 自分で作ってみることにした。
と言っても難しいことはできないので、 html を作ってブラウザで見ることにする。
<img="2018/0519.和製ウユニと猫島/IMG_8921.JPG" width="120" height="80"> <img="2018/0519.和製ウユニと猫島/IMG_8922.JPG" width="120" height="80"> <img="2018/0519.和製ウユニと猫島/IMG_8923.JPG" width="120" height="80"> <…>
とか、書いておけばいいだろうw
ということで作ったのがこちら。ファイル一覧とか出すのが簡単なので Bash Script で作成。 調子に乗って、アスペクト比を保持したまま縮小してサムネイル表示する仕組みを入れている。
#!/bin/sh #長辺がこのサイズに収まるように整形する (縦横比を維持) lbndry=120 cat <<'HEADER' <html> <meta charset="UTF-8"> <head> <title>写真ビューア</title> </head> <body> HEADER find . -type f -iname "*.jpg" | sort | while read photo do reso=`file "${photo}" | perl -pe 's/.*?([0-9]+x[0-9]+).*/\1/g'` width=${reso%%x*} height=${reso##*x} # if [ "${width}" -gt "${height}" ]; then height=$((height*lbndry/width)) width=${lbndry} else width=$((width*lbndry/height)) height=${lbndry} fi name=`basename "${photo}"` echo "<a href=\"${photo}\"><img src=\"${photo}\" alt=\"${name}\" border=\"0\" width=\"${width}\" height=\"${height}\"></a>" done cat <<'FOOTER' </body> </html> FOOTER
実際に動かしてみたのだが…。 html 作成にかかった時間は 10分程度。
まあ、 JPEG ファイルが 33000 程度あるからそんなもんか?
※一つずつ写真の解像度調べてるからなぁ…。アスペクト比計算をなくせばもっと速くなるだろうが。
ただ、実際にブラウザで表示させたら
表示が遅すぎて使えないw
やっぱり、ちゃんと サムネイルファイル 作らなきゃダメか…。(´・ω・`)
コメント
コメントを投稿