 |
(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 **********************************************************************************
|
|  |