2007年6月7日星期四

Imagemagick 勁得 - 2

上次Imagemagick 勁得做去嚟個Logo好似好有問題.

第一,效果真係唔似,同我嘅expectation差好遠.
第二,個Size 320x240真係算太過大.
第三,個logo個physical file size有成900k,都真係比較大.

諗下又睇下,發現個Semi-transparent exampleColor Optimization嘅example又真係幾得喎.

好等我做多一個睇睇下個效果會唔會好d先.

個idea好簡單,就中文寫我個遊記嘅名,然後就用Color Optimization嘅Effect.而英文就用嘅寫低我個遊記嘅URL,Effect就用Semi-transparent.另外一個改變就係要將個Logo嘅Size由320x240變細,大概200數上就OK.

首先就改左個createlogobase.sh嘅script.

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

convert logo/resizedlogo.jpg -resize 230x173 -density 6% logo/logo1.jpg


今次個script簡單左好多,因為一個base做background就好夠,size到最後就用230x173,都keep返個aspect ratio (x / y).

然後就改個engfont.sh.


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

}

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 200 \
finalfont/engborderlogo_mask.png

createlogo "engborderlogo"


主要係resize到fit到落去個background度,我就揀左200pixel闊,高就等Imagemagick自己determine.

中文個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 70 \
finalfont/chineselogo_original.png


主要都係resize,70就幾ideal,因為個script係做到個字由最左飛到最右,然後中間就做小小blur同wave,搞到好有動感咁.個backup係230,將佢除三就大概係70.

最後其實就係要apply果個兩effect落果兩個png度,然後將background加上果兩個新做嘅effect,咁就大公告成.

convert -channel RGBA -fill white \
\( -page 230x173+15+140 finalfont/engborderlogo_3D_original.png \
-coalesce -set delay 1500 \) \
\( +clone -motion-blur 0x20+90 -blur 0x3 -colorize 100% \
+clone -colorize 30% +swap -composite -set delay 10 \) \
\( +clone -roll +0-20 -blur 0x3 -colorize 30% \
-motion-blur 0x15+90 -motion-blur 0x15-90 -set delay 5 \) \
\( +clone -colorize 30% \
-motion-blur 0x30+90 -blur 0x5 \) \
\( +page -size 230x173 xc:none -set delay 1 \) \
\( -clone -2-1 \) \
\( -page 230x173+15+140 finalfont/engborderlogo_3D_original.png \
-coalesce -set delay 1500 \) \
-set dispose background -coalesce -loop 0 \
finalfont/teleportengfont.miff
convert finalfont/teleportengfont.miff \
-channel A -ordered-dither o8x8 \
finalfont/teleportengfont.gif

convert -dispose none -channel RGBA \
\( -page 230x60+5+14 finalfont/chineselogo_original.png \
-set delay 1000 \) \
\( -background transparent -page 230x44+74+6 \
finalfont/chineselogo_original.png -set delay 5 \
-motion-blur 0x12+0 -motion-blur 0x12+180 -wave -8x200 \) \
\( -page 230x60+153+14 \
finalfont/chineselogo_original.png \
-set delay 1000 \) \
\( -background transparent -page 230x44+74+6 \
finalfont/chineselogo_original.png \
-set delay 5 \
-motion-blur 0x12+0 -motion-blur 0x12+180 -wave +8x200 \) \
\( -page 230x60+5+14 finalfont/chineselogo_original.png \
-set delay 1000 \) \
-loop 0 finalfont/teleportchinesefont.miff

convert -layers CompareAny \
-dispose none logo/logo1.jpg \
\( -dispose previous finalfont/teleportengfont.gif \) \
\( -dispose previous finalfont/teleportchinesefont.miff \) \
logo/movinglogo.gif


本來我都想up個logo上埋嚟,不過還掂up上嚟之後都睇唔到,咁咪費事搞咁多嘢囉.個Concept我唔會詳細講,因為你睇完Imagemagick嘅example自然會明,我亦唔想做到好似自己諗出嚟咁.不過有一樣嘢我想特別攞出嚟講架,就係如果用Explorer睇影片咁睇,個Animation係有問題架,不過只要用IE,Opera或者Firefox睇就會無事,基哥你玩我玩左大半日,到最後,我都覺得無做錯先開始試下用第二d方法睇,然後先知係比阿基哥你又玩左一次金金地...

如果真係想睇下個完成圖,可以到我個遊記坐下架.

沒有留言: