簡體   English   中英

在Linux上安裝ImageMagick Unicode字體無法正常工作

[英]ImageMagick unicode font installation on linux not working

我在CentOS linux服務器上安裝了ImageMagick。

我試圖讓ImageMagick將Unicode(非羅馬)字體轉換為圖像。 我可以使用基於羅馬/拉丁語的字體來做到這一點,但不能使用非拉丁語(如中文)。

編輯*當我嘗試轉換非拉丁字體時,它們顯示為垃圾,例如%$ ?? W * ??

我在系統上安裝了unicode字體,並更新了ImageMagick的type.xml文件以反映這一點(我也更新了我的locate db)。

當我運行時(在我的shell中):#identify -list類型

我可以看到我的字體已安裝並且ImageMagick可以看到它們,但是當我運行文本到圖像的轉換php腳本時,它們(非拉丁字體)仍然不起作用

我已經查看了與此相關的另一篇文章: 使ImageMagick識別字體

但是在那里做完所有事情后,我仍然遇到同樣的問題。 請幫忙。

謝謝。

編輯:這是與imagemagick初始化有關的一些代碼:

            $font = 'UNICODE.TTF';  
    /* Create imagickdraw object */
    $draw = new ImagickDraw();
    $draw->setFont($font);
    $draw->setStrokeAntialias(true);
    $draw->setTextAntialias(true);
            $draw->setFontSize(100);
            $draw->setTextEncoding("UTF-8");

          //and than there is a bunch of code I use to manipulate the image shadow etc.

更新自通過這篇文章的評論獲得幫助后,我了解到:

  1. 該ImageMagick能夠轉換unicode非拉丁字符。這是通過將一個希伯來語單詞通過linux命令行傳遞給ImageMagick來測試的。

  2. 因此,問題在於ImageMagick PHP模塊具有解釋Unicode非拉丁文本的能力。

  3. php文件本身具有支持UTF-8的所有必需元素,實際上確實創建了一個文件名,該文件名源自我要傳遞給ImageMagick進行圖像創建的同一個文本變量。 該文件名已通過php以非拉丁語unicode文本成功保存在我的服務器上。

當使用ImageMagick PHP模塊從Unicode非拉丁字體的文本創建圖像並進行圖像處理時,我在網上環顧四周,找不到任何有關此問題的信息。

這可能是ImageMagick錯誤嗎? 任何幫助,將不勝感激。 謝謝。

這個問題的解決方案是在我的PHP中稍后出現的編碼問題中找到的。 基本上,我將字符串拆分為單獨的字符,並且需要這樣做,並且不會破壞2字節的unicode字符。

我不希望向試圖幫助我解決此問題的人們展示我的其余代碼,這對我來說是一個大錯誤。 學過的知識。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM