Sidehistorik
This script travles a directory structure and creates thumbnails for each image and video (flv, avi, mov)
Bemærk |
---|
This requires packages Imagick and ffmpegthumbnailer installed, this can typically be done with a package manager for the OS. Base for search is hardcoded as /data/images Thumbs are places in a subdir called "thumbs/200pxHigh - If the Height Parameter is 200. eg. "thumbs/800pxHigh - If the Height Parameter is 800 Image names are kept, movies get a ".jpg" appended |
...
Kodeblok | ||
---|---|---|
| ||
#!/bin/bash
IFS=$(echo -en "\n\b")
Height=$1
ThumbsDir=$Height"pxHigh"
LabelHeight=10
if [ $Height == '' ]
then
echo "Missing Height Parameter"
exit 0
fi
cd /data/images
for dir in `find . -type d | grep -v thumbs`
do
dir=$(echo $dir|sed 's/\.\///')
if [ ! -d /data/images/$dir/thumbs ]
then
mkdir /data/images/$dir/thumbs
fi
cd /data/images/$dir
NumOfPics=`ls $file | egrep -i "\.(mov|flv|avi|jpg|gif|png|bmp)$" | wc -l`
if [ $NumOfPics -ne 0 ]
then
if [ ! -d /data/images/$dir/thumbs/$ThumbsDir ]
then
mkdir /data/images/$dir/thumbs/$ThumbsDir
fi
for pic in `ls | egrep -i "\.(jpg|gif|png)$"`
do
#Create a thumbnail if the file does not exist
if [ ! -f /data/images/$dir/thumbs/$ThumbsDir/$pic ]
then
/usr/bin/convert -thumbnail x$Height $pic /data/images/$dir/thumbs/$ThumbsDir/$pic
echo "Converting $pic to /data/images/$dir/thumbs/$ThumbsDir/$pic"
fi
done
for mov in `ls | egrep -i "\.(flv|avi|mov)$"`
do
#Create a thumbnail if the file does not exist
if [ ! -f /data/images/$dir/thumbs/$ThumbsDir/$mov.jpg ]
then
/usr/bin/ffmpegthumbnailer -i $mov -o /data/images/$dir/thumbs/$ThumbsDir/$mov.jpg -s $Height -q 10 -a
echo "Thumbnailing video $mov to /data/images/$dir/thumbs/$ThumbsDir/$mov.jpg"
/usr/bin/convert /data/images/$dir/thumbs/$ThumbsDir/$mov.jpg -pointsize 10 -background "#d5d5d5" -gravity Center label:"VIDEO" -append /data/images/$dir/thumbs/$ThumbsDir/$mov.jpg
echo "Labeling video /data/images/$dir/thumbs/$ThumbsDir/$mov.jpg"
fi
done
fi
done
|
...