我正在使用ImageMagick爲我們的系統中的產品生成一些產品徽章。產品徽章就像SO flair,只是幾張合成圖像和一些文字。腳本沒有問題,因爲它在運行Windows的開發機器上運行良好。但是,在我的生產系統(CentOS 5.1)上,它呈現除文本之外的所有內容。Imagemagick不顯示文字,但不會輸出錯誤
我認爲這是一個字體的問題,但即使我的字體文件複製到PHP文件位置不工作也沒有,當我給它一個完整的路徑它的工作。
當我安裝了Windows字體的Linux作爲described here沒有奏效。
我已經輸入convert -list font
,它顯示的字體列表Imagick知道(如下圖所示parital列表)
Font: Times-BoldItalic
family: Times
style: Italic
stretch: Normal
weight: 700
glyphs: /usr/share/fonts/default/Type1/n021024l.pfb
Font: Times-Italic
family: Times
style: Italic
stretch: Normal
weight: 400
glyphs: /usr/share/fonts/default/Type1/n021023l.pfb
Font: Times-Roman
family: Times
style: Normal
stretch: Normal
weight: 400
glyphs: /usr/share/fonts/default/Type1/n021003l.pfb
我想給這裏列出的絕對路徑,並沒有奏效。我也嘗試過使用這個名字,而且什麼都沒有。
基本上圖像顯示出來,但它的文本部分都不會顯示出來,並不會引發任何錯誤(見下圖)。
沒有什麼錯的代碼和Windows和CentOS都在運行Imagick(6.7.1-4和6.7.1-3)的近版本。唯一的問題可能是字體,我只是把正常的TTF字體和測試,我需要某種特殊的字體,以使其工作?
工作
打破
編輯 - 忽略的QR碼和收視率的差異。這是由於工作徽章和非工作徽章位於兩臺不同的服務器上。
UPDATE 1 - 我運行了一個簡單的測試腳本,甚至不起作用。這就是我作爲測試跑過的:http://us2.php.net/manual/en/function.imagick-annotateimage.php字體只是不顯示,沒有錯誤拋出。
我也從CentOS系統複製的字體,並嘗試了在Windows中,它工作正常。字體在CentOS上似乎不起作用。
我也試過不設置字體,我認爲Imagick拿起默認字體什麼的,再適用於Windows,但不能在CentOS。我要在不同的* nix版本上試試這個,看看會發生什麼。將更新與調查結果。
更新3:我已經將問題縮小到了我認爲FreeType庫的問題。論壇表示需要安裝FreeType才能正確顯示文本。當我看着config.log時,它告訴我安裝FreeType時有一個問題。任何正面的這將不勝感激,同時我要重新安裝Freetype並再次運行安裝。
是它顯著在所有這三個最左側的星星在填寫**工作**圖像,並且它們在** Broke **圖像中都是空的? –
並且條形碼也不同)但是關於主題:你是否嘗試過一些簡單的(非常基本的)腳本來檢查字體是否在imagemagic中工作(很難調試很多代碼)?如果你這樣做 - 請在這裏發佈,我想你會得到更多的幫助。 – XzKto
抱歉圖像差異的傢伙。工作的是來自本地數據的本地開發人員,非工作人員來自登臺服務器,因此數據存在差異。我將設置一個更簡單的測試腳本並將其發佈到此處。但是我的命令行測試不成功。也會發布這些。 – JohnP