Képek átméretezése, feliratozása


By Proci - Posted on 11 július 2009

Egy script amivel a galériába szánt képeket előkészítem.
A fényképezőgépből kijött képeket emberibb méretre csökkenti, majd elkészíti a 640*480-as méreteket (galáriában ezeket tudjátok előre-hátra léptetni).
Mindkettőt külön feliratozza a megadott szöveggel, színnel, pozícióban.

Elég a képekkel teli mappában kiadni a script nevét és egy nekifutásra elvégzi az összes képpel.

kepweb.sh

#!/bin/sh

mkdir -p ./.n

alias ls='ls' #a színkódos fájlnév
#(bashrc-be szokták definiálni) scriptbe nem túl nyerő
for pic in `ls -1 *.jpg`;do
export base=`basename $pic .jpg`
echo "$pic..."

# nagykep keszites
cp $pic ./.n/
cd ./.n
mv $pic $base.old.jpg #a .jpg kell a végére,
# a convert onnan szedi a fájltípust
convert -resize 1280x960 -quality 90 $base.old.jpg $pic
#"thumbnailt" csinál a képből;)
rm $base.old.jpg

convert $pic -gravity  SouthEast -font helvetica -pointsize 18 \
-fill white -draw "text 5,3 \
'Photo by Proci - http://prociweb.hu'" $pic.old;
mv $pic.old $pic;

# kiskep keszites
cd ..
mv $pic $base.old.jpg
convert -resize 640x480 -quality 90 $base.old.jpg $pic 
rm $base.old.jpg

convert $pic -gravity  SouthEast -font helvetica -pointsize 15 \
-fill white -draw "text 5,3 \
'Photo by Proci - http://prociweb.hu'" $pic.old;
mv $pic.old $pic;

echo "kész"
done

-----

Ez a rövid script pedig minden képen 90%-os tömörítést hajt végre. Tudjuk szemmel nem látható nagyon a különbség, de a fájl mérete jelentősen csökken.

kep.sh

#!/bin/sh

alias ls='ls'
for pic in `ls -1 *.jpg`;do
export base=`basename $pic .jpg`
mv $pic $base.old.jpg 
convert -quality 90 $base.old.jpg $pic 
rm $base.old.jpg
done
Címkék