(Terug) naar scripts op heeck.nl of heeck.nl

******************************************************************************************
resizeimg

Een scriptje om van plaatjes een kleinere en een tegeltje te maken, voor de foto-albums hier op de site.
Gebruikt ImageMagick.

Nog niet heel erg geparameteriseerd, ik heb voor het eerst sinds lange tijd weer eens een shellscript geschreven en ben al blij dat het werkt :-)

Het kan wel losgelaten worden op een directory met meerdere bestanden, van elk bestand wordt eerst gecheckt of het wel iets is waar ImageMagick wat mee kan.

Naast de geschaalde beeldbestanden levert dit script een tabgescheiden output van bestandsnamen en afmetingen die ik gebruik om de database voor de fotoalbum-interfaces te vullen.
01 #!/bin/bash
02 #
03 # Resize images in batch. Output file names with extra labels for thumb & resized.
04 # Send output to file for catalog use. Requires ImageMagick
05 #
06 #
07 while [ "$1" != "" ]
08 do
09 	#test if file is image that ImageMagick can handle
10 	test_image=`identify $1 2>&1 | grep "@ error"`
11 	if [ "$test_image" = "" ]
12 	then
13 		#split filename & extension
14 		extension="${1##*.}"
15 		filename="${1%.*}"
16 		thumbfile=$filename'.thumb.'$extension
17 		rezisfile=$filename'.sized.'$extension
18 		#get original dimensions
19 		dimensions=`identify $1 | head -1 | cut -f3 -d" "`
20 		imgwidth=`echo $dimensions | cut -f1 -d"x"`
21 		imgheight=`echo $dimensions | cut -f2 -d"x"`
22 		# determine orientation
23 		if [ $imgwidth -lt $imgheight ]
24 		then
25 			# portrait
26 			convert $1'[x150>]' $thumbfile
27 			convert $1'[x640>]' $rezisfile
28 		else
29 			# landscape or square
30 			convert $1'[150x>]' $thumbfile
31 			convert $1'[640x>]' $rezisfile
32 		fi
33 		#collect data for catalog use
34 		dimensions=`identify $rezisfile | head -1 | cut -f3 -d" "`
35 		resizwidth=`echo $dimensions | cut -f1 -d"x"`
36 		resizheight=`echo $dimensions | cut -f2 -d"x"`
37 		dimensions=`identify $thumbfile | head -1 | cut -f3 -d" "`
38 		thumbwidth=`echo $dimensions | cut -f1 -d"x"`
39 		thumbheight=`echo $dimensions | cut -f2 -d"x"`
40 		echo -e "$1\t$imgwidth\t$imgheight\t$rezisfile\t$resizwidth\t$resizheight
                \t$thumbfile\t$thumbwidth\t$thumbheight"	
41 	else
42 		echo "$1 is not an image, ignored" 1>&2 
43 	fi
44 	test_image=""
45 	shift
46 done




14-11-2015
* Begin **********************************************************************************