Du ser en gammel version af denne side. Se den nuværende version.

Sammenlign med nuværende Vis sidehistorik

« Forrige Version 6 Næste »

This script travles a directory structure and creates thumbnails for each image and video (flv, avi, mov)

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

This is closely related to the me-image - Image lightbox with Confluence styleme-image - Image lightbox with Slimbox2 and me-image - Image lightbox with fancybox macros

Executing the script:

./makethumbs.sh Height

Sample

./makethumbs.sh 200

Parameters:

Height

Height of the thumbnails

Source of the Script:

#!/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)$" | 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
	

Directory structure sample:

Original fileThumbnail for 200 HeightThumbnail for 800 Height  
/data/images/MyCar/image1.jpg/data/images/MyCar/thumbs/200pxHigh/image1.jpg/data/images/MyCar/thumbs/800pxHigh/image1.jpg  
/data/images/MyCar/Styled/image1.jpg/data/images/MyCar/Styled/thumbs/200pxHigh/image1.jpg/data/images/MyCar/Styled/thumbs/800pxHigh/image1.jpg  
/data/images/MyCar/Speeding.avi/data/images/MyCar/thumbs/200pxHigh/Speeding.avi.jpg   
  • Ingen etiketter