ImageMagick

某天從 IBM 電子報上看到這篇http://www-106.ibm.com/developerworks/library/l-graf2/?ca=dgr-lnxw02GraphicsLine,才知道 ImageMagick 這麼神奇,直接用指令列就可以做很多圖片編輯的工作了~
把圖片的右上角弄成圓角

composite -gravity NorthEast rounded-ne.png lake.png lake-1.png

rounded-ne.png 是一個圓角的圖案,背景設成白色,圓角部份則設為透明.
composite 會將 rounded-ne.png 與 lake.png 結合,並輸出到 lake-1.png
是故,同理可證,你可以搞定四個角

composite -gravity NorthEast rounded-ne.png lake.png lake-1.png
composite -gravity NorthWest? rounded-nw.png lake-1.png lake-2.png
composite -gravity SouthEast? rounded-se.png lake-2.png lake-3.png
composite -gravity SouthWest? rounded-sw.png lake-3.png lake-4.png

寫成 script 就變成了:

for img in *.png do composite -gravity NorthEast rounded-ne.png $img.png $img-1.png
composite -gravity NorthWest rounded-nw.png $img-1.png $img-2.png
composite -gravity SouthEast rounded-se.png $img-2.png $img-3.png
composite -gravity SouthWest rounded-sw.png $img-3.png $img-4.png
done

讓圖片浮起來,變成像按鈕的樣子

convert -raise 5×5 tree.png tree-raised.png

凹下去的話就是用

convert +raise 5×5 tree.png tree-lowered.png

加個邊框吧

convert -bordercolor red -border 5×5 flower.png flower-border.png

也是加框,不過有點巧妙…

convert -mattecolor black -frame 5×5 beach.png beach-frame.png
convert -mattecolor black -frame 5×5+2 beach.png beach-frame.png
convert -mattecolor black -frame 5×5+2+2 beach.png beach-frame.png

或是

convert -mattecolor gray -frame 25×25+0+25 rock.png rock-frame1.png
convert -mattecolor gray -frame 25×25+25+0 rock.png rock-frame2.png

把所有 .jpg 縮圖

for img in *.jpg
do
convert -sample 25%x25% $img thumb-$img
done

或是

mogrify -sample 25%x25% *.jpg
mogrify -format png -sample 25%x25% *.jpg

把 pdf 中的圖檔解出來

convert foo.pdf pages-%03d.png

of course, 也可以反過來,把圖檔作成 .pdf

convert dsc* foo.pdf

利用 ssh + tar 作備份

以前看網路上某篇文章時,節錄下來的,出處已經不可考了.它是利用 ssh + tar 來作備份,不僅安全,也兼顧了部分的效率.
$target 表示目的機器,指遠端機器
$backup_server 表示備份機器,同樣也是指遠端機器
$save 則是指備份目錄
要求遠端備份並拉回 local

ssh $target tar -cf – / –exclude /mnt | bzip2 -9 | cat > $target.tar.bz2

解開本地備份並回存到遠端去

bunzip2 -dc $target.tar.bz2 | ssh $target “cd /;tar -pxkf -“

備份 local 資料,丟到遠端去壓縮並存檔

tar cf – / –exclude xxx | ssh $backup_server “bzip2 -9 > $save/test.tar.bz2”

把遠端資料拉回 local,作解壓縮動作

ssh $backup_server “cat $save/test.tar.bz2” | bunzip2 | tar -xpkf –

Windows Installer XML

今天看到 Taiwan C!Net 的一篇新聞: http://taiwan.cnet.com/news/software/0,2000064574,20088766,00.htm
想不到,微軟居然 release 專案到 http://sourceforge.net去,蠻破天荒的~~@_@
專案的名稱是 Windows Installer XML (WiX),而網址在: http://sourceforge.net/projects/wix/
是的,看專案名稱就知道這是一個有關 installer 的專案.
以下從原網站貼過來,並翻譯了一下.

The Windows Installer XML (WiX) is a toolset that builds Windows installation packages from XML source code. The toolset supports a command line environment that developers may integrate into their build processes to build MSI and MSM setup packages.

Windows Installer XML (WiX) 是一組用來從 XML 源碼裡建立 Windows 安裝套件的工具組.這個工具組提供了一個命令列的環境,讓使用者可以將製作 MSI 與 MSM 安裝套件的步驟整合到自己的開發程序裡面.

下載以後,稍稍的玩了一下,發現用法很簡單(難的是 .wxs 的內容,有點小複雜,目前也已經有人在 SourceForge 開了專案要來解決這個複雜的部分)~~
步驟大致是這樣的:先用 notepad 製作出一個 .wxs , 這個 .wxs 其實是一個特殊的 .xml,提供了所有 package 所需要的資訊.然後再使用 candle 這個指令將 .wxs 轉為 .wxiobj 中介檔.
你可以使用 notepad 去觀察 .wxiobj ,你會發現其實他也是一個 .xml 檔案,只是更讓人看不懂~~最後再使用 light 指令,就可以產生出 .msi (installer)或 .msm (installer module)檔案了.這裡也提供了另外一個有趣的工具叫 dark, 它是一個反向工程的工具,用來把 .msi 或 .msm 轉為 .wxs
仔細看一下上面提到的三個工具的名字: candle, light, dark 翻譯成中文正好就是蠟燭,點亮,吹滅. 很有趣不是嗎?! 🙂
WiX 專案發起人的 blog
Using the WiX Toolset to Integrate Setup into Your Development Process