imagemagick 中的 convert 可以把字型顯示在圖檔中
- -display X-SERVER 向這裡指定的 X-SERVER 要求字型或圖片
- -family FAMILY_NAME 使用指定的 font family 顯示文字
- -font FONT_PATH 使用指定的 font 顯示文字 (name 是字型的路徑)
- -pointsize POINT_SIZE 指定字型尺寸
- -stretch STRETCH 指定字型的 stretch (Any,Condensed,Expanded,ExtraCondensed, ExtraExpanded,Normal...)
- -style STYLE 指定字型的 style (Any,Italic,Normal,Oblique)
- label:STRING STRING 代表圖檔內要顯示的文字
- FILE_NAME 圖檔名稱
顯示系統安裝的字型清單
$ convert -list font如果是 IM 6.3.5-7 之前,顯示字型清單要用
$ convert -list type
顯示支援的 font style
$ convert -list style
顯示支援的 font stretch
$ convert -list stretch
如果要顯示的字數較多,可在 label 指定要顯示的文字檔
$ convert -family Arial -pointsize 24 label:@font-test.txt font-test-arial.png
不曉得是我不會用,還是 imagemagick 有 bug,到目前為止,指定 -family 一直無法成功,但用 -font 指定字型路徑就沒問題。而指定了 -font 好像也就不要 -stretch 或 -style 了。
例:用 cwyen 顯示
旭日東昇,但依舊寒風刺骨
雪地上的屍體
見證著平民之女與甘願放棄優渥生活的阿乙之間
炙熱的愛
直到永遠
$ convert -font /usr/local/share/fonts/truetype/cwyen.ttf -pointsize 32 label:@font-test-cht.txt font-test-cht.png
$ display font-test-cht.png
如果要讓圖片更花俏,可:
加上色彩
-background BACKGROUND_COLOR
-fill FOREGROUND_COLOR
-list color (查詢內建的色彩關鍵字)
指定 size
-size WidthxHeight
在指定位置加上文字
-annotate +X+Y 'text'
字的輪廓加上外框 (加在 font 後面)
-stroke STROKE_COLOR
-strokewidth STROKE_WIDTH (不必指定單位,單位好像固定是 px ?)
圖片邊緣改為斜邊並加上光影
-raise WxH 左、上邊框亮,右、下邊框暗,W 是左、右邊框的寬度,H 是上、下邊框寬度
+raise WxH 左、上邊框暗,右、下邊框亮
其他花俏的東西以後有空再研究
參考資料
man convert
ImageMagick v6 Examples -- Text to Image Handling