2010-04-16 46 views
14

我一直在Ubuntu 9.10上的ImageMagick上播放圖像。我希望能夠識別字體,以便我可以用它的「暱稱」來稱呼它。讓ImageMagick識別字體

我可以通過鍵入

identify -list font

在該列表中我看到時報粗體查找字體的ImageMagick識別列表。因此

convert -font Times-Bold label:abcdef times.gif

將生成Times New Roman粗體字體的gif文件。

我知道我可以傳遞的路徑,字體,而不是它的綽號,但我需要能夠從系統移動到系統時,使用其暱稱,所以我誤差較小。我試圖特別工作的字體是一種名爲Segoe UI的真正字體字體。

我已經安裝在我的系統的Segoe UI。如果我將路徑傳遞給它的字體。但我想能夠使用像

convert -font Segoe-UI label:abcdef segoe.gif

謝謝!

回答

17

從我記得,identify使用配置文件,名爲type.xml,通過名稱來查找字體。您可以在系統級別更改imagemagick自己的此文件副本,或者在用戶級別添加額外的字體。

有一個名爲imagick_type_gen的腳本,它將使用「locate」數據庫在您的系統上查找字體並生成其中一個配置文件,然後您可以使用它配置imagemagick;對於一個普通用戶,我認爲這在~/.magick/type.xml,儘管你可以把它放在某個系統級別。這通常是what I've used in the past

所以,基本上我認爲你需要配置系統type.xml文件或添加用戶級之一。只要在移動到新系統時可以這樣做,無論哪個用戶運行imagemagick,如果字體路徑不同,至少應該能夠避免更改代碼。

+2

非常好。謝謝你,馬特!對於那些命令行中的新手來說,我通過鍵入「./path/to/imagick_type_gen」來執行腳本。我通過「sudo chmod + x/path/to/imagick_type_gen」確保它可執行。 – 2010-04-16 17:31:09

+0

我也有兩種字體:Segoe UI Bold和Segoe UI。我正在使用RMagick程序傳遞一個「粗體」參數,但它並沒有變得粗體。我所做的是編輯文件,以及所有指向seguibd.ttf文件(這是Segoe UI的大膽版本)的東西,我將字體系列更改爲我想要的暱稱。不知道這是最好的方式,但它工作。 – 2010-04-17 04:08:10

+1

在debian(2014)中使用cli,而不是'identify -list Type',我使用'convert -list font'來獲取可用字體的列表。真棒,感謝您的答案和您的博客文章寫作。 – 2014-02-03 21:51:21