2011-01-31 8 views
0

私はImageMagickをCentOSのLinuxサーバにインストールしています。ImageMagick unicodeフォントのインストールがLinuxで動作しない

ユニコード(非ローマン)フォントをイメージに変換するためにImageMagickを取得しようとしています。 私はローマ字/ラテン系フォントでこれを行うことができますが、中国語などの非ラテン語ではできません。

EDIT *非ラテンフォントを変換しようとすると、%$ ?? W * ??のようなゴミとして表示されます。

システムにユニコードフォントをインストールし、ImageMagickのtype.xmlファイルを に更新しました。これを反映しています(私のロケートデータベースの更新もあります)。

私は(私のシェルで)実行します。#-list種類

を識別し、私は私のフォントがインストールされていることを確認し、ImageMagickのは、それらを見ているが、私は実行したときに、彼ら(非ラテンフォント)はまだ動作しないことができます私のテキスト・ツー・画像変換PHPスクリプト

私はこれに関連する別の記事チェックアウトした: Make ImageMagick recognize a font

をしかしそこにすべてをやった後、私はまだ同じ問題を抱えています。 助けてください。

ありがとうございました。

EDIT: これは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. 

UPDATE 私が学んできたこの記事にコメントを経由して支援を受けて以来:

  1. ImageMagickのことUnicode非ラテン文字を変換することができます これは、linuxのコマンドラインでImageMagickにヘブライ語を渡すことでテストされました。

  2. したがって、問題はImageMagick PHPモジュールのユニコード非ラテンテキストを解釈することにあります。

  3. PHPファイル自体はUTF-8をサポートするために必要なすべての要素を持っているし、実際に私がイメージ作成のためのImageMagickに渡しています同じテキストvarible由来のファイル名を持つ ファイルを作成しません。ファイル名は正常に私のサーバー上のphpで非ラテンのUnicodeテキストに保存されます。

私はネット上で周りを見回していると、それが作成し、ユニコード非ラテン語フォントのテキストからイメージするためにImageMagickのPHPモジュールを使用して を来るとき、この問題上の任意の情報を見つけることができません。

これはImageMagickのバグでしょうか?どんな助けもありがとう。ありがとう。

+0

あなたは、非ラテンフォントがいかに正確に動作しないかを精緻化する必要があります。彼らはサーバーをクラッシュさせますか?全く表示されませんか?壊れて表示されますか? – phihag

+0

うん。ごめんなさい。 EDITを追加しました。ありがとう。 – Zigglzworth

+1

詳細を表示する必要があります。どのようにImageMagickにデータを渡していますか?あなたは、文字化けした文字の具体例を作ることができますか?あなたがImageMagickに提供するデータはどのようなエンコードですか?コードがある場合は、それを示してください。 –

答えて

0

この問題の解決策は、後で私のPHPで発生するコーディングの問題で発見されました。 基本的には、文字列を別々の文字に分割し、 2バイトのユニコード文字を破壊しないようにする必要がありました。

は私の一部で大きな間違いだったこの問題を解決するのを手伝ってくれる人々のために、残りのコードを表示するとは思わなかった。学んだ教訓。

関連する問題