« 2013年10月 | トップページ | 2015年11月 »

2015-08-27

写真サムネイルインデックスのページを作るスクリプト

仲間内で写真を配りたい時に簡易的なサムネイルインデックスのページを作るシェルスクリプト。サムネイルはオリジナルサイズのファイルにリンク。一括ダウンロード用にzipでまとめたファイルへのリンクも用意。

zipコマンド、awkコマンド、およびImageMagickのconvertコマンドが必要。

適当に書いているので、おかしなところも多々あると思いますが、そのあたりはご自身で修正してください。
(HTMLタグの記述が古い……、ので書きなおした 20:51)
「photoindex.sh」をダウンロード


#!/bin/sh
#
# creating thumbnail index
#

#
# variables
#
WIDTH=180
HEIGHT=120
ZIPFILE=allpic.zip

#
# copy: jpg --> JPG
#
if PICS=$(ls | grep -e "\.jpg" | grep -v -e "-SMALL")
then
for f in ${PICS}
do
echo ${f}
if [ -f ${f%.jpg}.JPG ]
then
mv -v ${f%.jpg}.JPG ${f%.jpg}-orig.JPG
fi
cp -v ${f} ${f%.jpg}.JPG
done
fi

if PICS=$(ls | grep -e "\.JPG" | grep -v -e "-SMALL")
then

#
# creating thumbnails
#
for f in ${PICS}
do
echo ${f}
smallf="$(basename ${f} .JPG)-SMALL.JPG"
if [ ! -f "${smallf}" ]; then
#convert -resize ${WIDTH}x${HEIGHT} +profile "*" ${f} ${smallf}
convert -thumbnail ${WIDTH}x${HEIGHT} ${f} ${smallf}
fi
done

#
# creating an archive including all photos
#
if [ ! -f "${ZIPFILE}" ]; then
zip -n .JPG ${ZIPFILE} ${PICS}
fi
TOTAL=$(ls -l ${ZIPFILE} | awk '{if($5/1024/1024>=1.0){printf("%d MB\n", $5/1024/1024)}else{printf("%d KB\n", $5/1024)}}')

#
# creating an index page
#
# header
#
cat < index.html




Photo index


Thumbnails are linked to the original file, full size image.



EOF

#
# layout
#
ls *-SMALL.JPG | awk -v width=${WIDTH} '{pic1=$1;gsub("-SMALL","",pic1);printf("\n", pic1, width, $1);}' >> index.html

cat <> index.html


Download all the pictures (${ZIPFILE}, ${TOTAL})


EOF

#
# closing html
#
cat <> index.html


EOF

fi


| | コメント (0) | トラックバック (0)

« 2013年10月 | トップページ | 2015年11月 »