2007年6月3日星期日

Imagemagick 勁得

四月尾有個網友travelpooh,佢竟然邀請我整個Banner Logo比佢link去我個"遊記",真係開心死我.

本來我已經馬上動身開工做logo,點不知我身邊好多至親一齊中Virus,真係講你都唔信,點不知幫佢地整好之後,就連我自己都中埋一份,真係講比人聽都怕笑大人個口.唉!

終於都花左成個月去從新Install過哂所有人嘅window,點不知真係禍不單行.竟然我個HDD有開始死嘅Sign出現.有無搞錯,我都知今年我行衰運架喇,只不過估唔到真係衰到咁啫.唉!之後花左八百蚊同兩個星期嘅時間去Fixup我自己部電腦.

Finally,五月尾終於可以開始個logo嘅Creation,初初諗住用Gimp做,後來發現我隻手原來真係好震.....都唔知點做Art Work....唉!

最後都係決定用返ImageMagick.其實之前都用過下,感覺係自己能力真係有限,點學都係唔太明,但係無其他方法,唯有頂硬上啦.

點知用下又睇個佢個Tutorial,做做下又比我做到出嚟,Yeah.

在此我Post個Step出嚟比大家分享一下:-

我個Idea係做一個有好似Camera Zoom-in動感嘅Logo,而且上面要有一句中文Title同我個遊記嘅URL.原圖:-


首先我Search左一d中英文嘅Truetype Fonts,然後用下面嘅Script做哂d Image去嚟自己揀,睇下用邊隻Fonts比較好.


for fonts in /usr/share/fonts/truetype/*
do
fontfile=`basename $fonts`
fontname=`echo $fontfile | cut -d. -f1`
echo $fontname

convert -fill white -pointsize 72 -font ${fonts} -size 500x200 xc:black \
-draw "text +20+100 '`cat mohimdiary.txt|iconv -f UTF-8 -t UTF-8`'" \
fontresult/chinese/${fontname}_original.png
convert fontresult/chinese/${fontname}_original.png -blur 0x3 \
fontresult/chinese/${fontname}_blur.png
convert fontresult/chinese/${fontname}_blur.png -sharpen 0x3 \
fontresult/chinese/${fontname}_blur_sharp.png
convert fontresult/chinese/${fontname}_blur_sharp.png -sharpen 0x3 \
fontresult/chinese/${fontname}_blur_sharp_x2.png

convert -background black -fill white -pointsize 72 -font ${fonts} -size 500x200 \
-gravity center label:http://mohimga.awardspace.com/hokkaido2006/ \
fontresult/eng/${fontname}_eng_original.png
convert fontresult/eng/${fontname}_eng_original.png -blur 0x3 \
fontresult/eng/${fontname}_eng_blur.png
convert fontresult/eng/${fontname}_eng_blur.png -sharpen 0x3 \
fontresult/eng/${fontname}_eng_blur_sharp.png
convert fontresult/eng/${fontname}_eng_blur_sharp.png -sharpen 0x3 \
fontresult/eng/${fontname}_eng_blur_sharp_x2.png

done


事先我已經將Internet (Wen Quan Yi Wiki , CLE 檔案伺服器 -- 字型區Unicode Font Guide For Free/Libre Open Source Operating Systems ) download返嚟嘅Fonts放哂入/usr/share/fonts/truetype入面.唔記得講其實我都將中文字用Ultraedit用UTF-8 Save左入一個text file入面.點解要咁做?原因好簡單,就係cygwin同window都唔support我在command line直接打中文,我亦都試過Linux同樣唔得,比佢玩左好耐,然後在Internet Search到東海大野狼的部落格 教人點用Imagemagick做中文圖.另外,我所有Script都係放入Cygwin入面Run.原因係我要做好多Script,而我亦都比較多用Linux所以寫Script會快一d,亦都因為要用iconv所以就no choice.

最後我決定左中文就用 bkai00mp.ttf 而英文就用 WALSHES.ttf .之後我就用左d時間揀下用咩Font Effect.最後我就做左兩個Script去Build個effect:-

英文個Script

function createlogo {

# color Aqua, LightYellow, Snow2 is quite good

logofile=$1

convert finalfont/${logofile}_mask.png -fill lightyellow \
-draw 'color 0,0 reset' \
finalfont/${logofile}_mask.png +matte -compose CopyOpacity -composite \
finalfont/${logofile}_original.png

convert finalfont/${logofile}_original.png -fx A +matte -blur 0x6 \
-shade 60x30 -normalize \
finalfont/${logofile}_original.png -compose Overlay -composite \
finalfont/${logofile}_original.png -matte -compose Dst_in -composite \
finalfont/${logofile}_3D_original.png

logo=${logofile}_3D
blurimage ${logo}

convert -page +6+6 finalfont/${logofile}_3D_original.png \
\( +clone -background burlywood -shadow 80x4+6+6 \) +swap \
-background none -flatten -shave 11x11 +repage \
finalfont/${logofile}_3D_shadow_original.png

logo=${logofile}_3D_shadow
blurimage ${logo}
}

function blurimage {

logo=$1

convert finalfont/${logo}_original.png -blur 0x3 \
finalfont/${logo}_blur.png

convert finalfont/${logo}_blur.png -sharpen 0x3 \
finalfont/${logo}_blur_sharp.png

convert finalfont/${logo}_blur_sharp.png -sharpen 0x3 \
finalfont/${logo}_blur_sharp_x2.png
}

fonts=/usr/share/fonts/truetype/WALSHES.ttf

convert -size 400x50 xc:black \
-fill white -draw 'circle 25,25 25,8' \
-draw 'circle 375,25 375,42' \
-draw 'rectangle 25,8 375,42' \
-gaussian 1x1 +matte \
-font ${fonts} -pointsize 32 -gravity center -fill black \
-annotate 0 "http://mohimga.awardspace.com/hokkaido2006/" \
-resize 300 \
finalfont/engborderlogo_mask.png

createlogo "engborderlogo"


行完個英文Script就會有






中文個Script


fonts=/usr/share/fonts/truetype/bkai00mp.ttf
convert -size 300x100 xc:transparent -font ${fonts} \
-pointsize 72 -stroke grey -strokewidth 10 \
-draw "text +5+80 '`cat mohimdiary.txt|iconv -f UTF-8 -t UTF-8`'" \
-blur 0x25 -fill burlywood -pointsize 72 -stroke none \
-draw "text +10+85 '`cat mohimdiary.txt|iconv -f UTF-8 -t UTF-8`'" \
-resize 100 \
finalfont/chineselogo_original.png

convert finalfont/chineselogo_original.png -blur 0x3 \
finalfont/chineselogo_blur.png

convert finalfont/chineselogo_blur.png -sharpen 0x3 \
finalfont/chineselogo_blur_sharp.png

convert finalfont/chineselogo_blur_sharp.png -sharpen 0x3 \
finalfont/chineselogo_blur_sharp_x2.png



行完個中文Script就會有






之後用下低個Script create個scene zoom-in嘅base即係做好每一個Frame嘅Logo.

#2048x1536 = X(2048 - 1741) / 2 = 153
#1741x1306 = X(1741 - 1698) / 2 = 21, Y(1306 - 1268) / 2 = 19

function nextstep {

convert logo/resizedlogo.jpg -chop ${stepx}x0 -crop +0-${stepy} +repage \
-extent ${length}x${height} -resize 320x240 -density 6% \
logo/logo${step}.jpg

}

convert logo/originallogo.jpg -chop 153x0 -extent 1741x1306 \
-density 85% -quality 70% logo/resizedlogo.jpg

convert logo/resizedlogo.jpg -resize 320x240 -density 6% logo/logo1.jpg

length=1741
height=1306
stepping=5
stepx=5
stepy=`echo "${stepx} * 1306/1741" | bc`

for step in `seq 2 7`; do
echo chop ${stepx} crop ${stepy} length ${length} height ${height}
nextstep
stepx=`echo "${stepping} * ${step}" | bc`
length=`echo "1741 - (${stepx} * 2)" | bc`
stepy=`echo "${stepx} * 1306/1741" | bc`
height=`echo "1306 - (${stepy} * 2)" | bc`
done



Total係有七個Frame.









最後就用下面個Script 做十個Frame而每個Frame都有Logo不過就係唔同效果,好似希望做到Zoom-in嘅時候未Focus到嘅感覺.其實之前只係做好7個Frame,Frame八,九同十其實係想做一個Swirl嘅Effect,好似個鏡頭有問題咁.

convert -size 320x240 xc:transparent \
logo/logo1.jpg -geometry +0+0 -composite \
finalfont/chineselogo_original.png -geometry +0+0 -composite \
finalfont/engborderlogo_3D_original.png -geometry +10+200 -composite \
logo/taggedlogo1.jpg

convert -size 320x240 xc:transparent \
logo/logo2.jpg -geometry +0+0 -composite \
finalfont/chineselogo_blur.png -geometry +0+0 -composite \
finalfont/engborderlogo_3D_blur.png -geometry +10+200 -composite \
logo/taggedlogo2.jpg

convert -size 320x240 xc:transparent \
logo/logo3.jpg -geometry +0+0 -composite \
finalfont/chineselogo_blur_sharp.png -geometry +0+0 -composite \
finalfont/engborderlogo_3D_blur_sharp.png -geometry +10+200 -composite \
logo/taggedlogo3.jpg

convert -size 320x240 xc:transparent \
logo/logo4.jpg -geometry +0+0 -composite \
finalfont/chineselogo_blur_sharp_x2.png -geometry +0+0 -composite \
finalfont/engborderlogo_3D_blur_sharp_x2.png -geometry +10+200 -composite \
logo/taggedlogo4.jpg

convert -size 320x240 xc:transparent \
logo/logo5.jpg -geometry +0+0 -composite \
finalfont/chineselogo_blur_sharp.png -geometry +0+0 -composite \
finalfont/engborderlogo_3D_blur_sharp.png -geometry +10+200 -composite \
logo/taggedlogo5.jpg

convert -size 320x240 xc:transparent \
logo/logo6.jpg -geometry +0+0 -composite \
finalfont/chineselogo_blur.png -geometry +0+0 -composite \
finalfont/engborderlogo_3D_blur.png -geometry +10+200 -composite \
logo/taggedlogo6.jpg

convert -size 320x240 xc:transparent \
logo/logo7.jpg -geometry +0+0 -composite \
finalfont/chineselogo_original.png -geometry +0+0 -composite \
finalfont/engborderlogo_3D_original.png -geometry +10+200 -composite \
logo/taggedlogo7.jpg

convert -swirl 2 logo/taggedlogo7.jpg \
logo/taggedlogo8.jpg

convert -swirl 8 logo/taggedlogo8.jpg \
logo/taggedlogo9.jpg

convert -swirl 4 logo/taggedlogo9.jpg \
logo/taggedlogo10.jpg

convert -delay 100 -size 320x240 logo/taggedlogo1.jpg \
-delay 80 logo/taggedlogo2.jpg \
-delay 60 logo/taggedlogo3.jpg \
-delay 40 logo/taggedlogo4.jpg \
-delay 20 logo/taggedlogo5.jpg \
-delay 10 logo/taggedlogo6.jpg \
-delay 5 logo/taggedlogo7.jpg \
-delay 4 logo/taggedlogo8.jpg \
-delay 3 logo/taggedlogo9.jpg \
-delay 2 logo/taggedlogo10.jpg \
-delay 2 logo/taggedlogo9.jpg \
-delay 3 logo/taggedlogo8.jpg \
-delay 4 logo/taggedlogo7.jpg \
-delay 5 logo/taggedlogo6.jpg \
-delay 10 logo/taggedlogo5.jpg \
-delay 20 logo/taggedlogo4.jpg \
-delay 40 logo/taggedlogo3.jpg \
-delay 60 logo/taggedlogo2.jpg \
-delay 80 -loop 0 logo/animatedlogo.gif


果十個Frame係咁:-











完成圖:-



原本係會郁的,可惜上載後就變成不會動了....

1 則留言:

匿名 說...

這張風車圖作為手機桌面一定很漂亮