Sidehistorik
This script travles a directory structure and creates thumbnails for each image and video (flv, avi, mov)
Bemærk |
---|
This requires Imagick and ffmpegthumbnailer installed Base for search is hardcoded as /data/images Thumbs are places in a subdir called "thumbs/200pxHigh - If the Height Parameter is 200 Image names are kept, movies get a ".jpg" appended |
This is closely related to the me-image - Image lightbox with Confluence style, me-image - Image lightbox with Slimbox2 and me-image - Image lightbox with fancybox macros
Executing the script:
Kodeblok |
---|
./makethumbs.sh Height |
...
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 [ ! $Height == "" ] then if [ ! -d /data/images/$dir/thumbs/$ThumbsDir ] then mkdir /data/images/$dir/thumbs/$ThumbsDir fi fi for pic in `ls | egrep -i "\.(jpg|gif|png)$"` do if [ ! $Height == "" ] then #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 else #Create a default thumbnail 50px high if the file does not exist if [ ! -f /data/images/$dir/thumbs/$pic ] then /usr/bin/convert -thumbnail x50 $pic /data/images/$dir/thumbs/$pic echo "Converting $pic to /data/images/$dir/thumbs/$pic" fi 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.jpgjpgx ] then /usr/bin/ffmpegthumbnailer -i $mov -o /data/images/$dir/thumbs/$ThumbsDir/$mov.jpg -s 180$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 2010 -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 |
Directory structure sample:
Original file | Thumbnail for 200 Height | Thumbnail for 800 Height | ||
---|---|---|---|---|
/data/image/MyCar/image1.jpg | /data/image/MyCar/thumbs/200pxHigh/image1.jpg | /data/image/MyCar/thumbs/800pxHigh/image1.jpg | ||
/data/image/MyCar/Styled/image1.jpg | /data/image/MyCar/Styled/thumbs/200pxHigh/image1.jpg | /data/image/MyCar/Styled/thumbs/800pxHigh/image1.jpg | ||
/data/image/MyCar/Speeding.avi | /data/image/MyCar/thumbs/200pxHigh/Speeding.avi.jpg |
...