2011-08-16 33 views
3

私はImageMagickを使用して、私たちのシステムの製品の製品バッジを生成しています。商品のバッジはSO flairのようなものです。わずかな数の合成画像とテキストがあります。 Windowsを実行する開発マシンでうまく動作するので、スクリプトに何も問題はありません。しかし、私の生産システム(CentOS 5.1)では、テキスト以外のすべてをレンダリングします。Imagemagickはテキストを表示しませんが、エラーは発生しません

私は、これは、フォントの問題だと思ったが、それは、私はPHPファイルの場所にフォントファイルをコピーしたり、私はそれを完全なパスを与えたとき、それは動作しなかった場合でも動作しません。

そして、私はdescribed hereとしてLinux用のWindowsのフォントをインストールしたとき、それは動作しませんでした。

私はconvert -list fontを入力したし、それがImagickが知っているフォントの一覧を示して、私はここに記載されている絶対パスを与えてみました、それがうまくいきませんでした

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 

(paritalリストを以下に示します)。私はまた名前を使用してみましたが、まだ何もしませんでした。

基本的に画像が現れるが、それのテキスト部分は、(下の画像を参照)すべてとエラーがスローされていない時には表示されません。

コードとWindowsとCentOSの両方がImagick(6.7.1-4及び6.7.1-3)の密接なバージョンを実行していると間違って何もありません。唯一の問題はフォントかもしれません、私は通常のTTFフォントを上げてテストしていますが、それを動作させるには特殊なフォントが必要ですか?ワーキング

Working Image

Broken Image

EDITを壊した - QRコードと評価の違いを無視します。これは、2つの異なるサーバー上に作業バッジと非動作バッジがあるためです。

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を再インストールし、再度インストールを実行するつもりです。

+0

は3一番左の星がで記入されているすべてであること、それが重要です**ワーキング**イメージと**ブローカ**イメージでそれらはすべて空ですか? –

+0

とバーコードも違う)しかし、トピックについて:imagemagicでフォントが動作しているかどうかを確認するための簡単な(非常に基本的な)スクリプトを試してみましたか(たくさんのコードをデバッグするのは難しいですか?あなたがした場合 - お願いします、ここに投稿してください、私はあなたがより多くの助けを得ると思います。 – XzKto

+0

イメージの違いについてお詫び申し上げます。作業用のものはローカルのデータを持つローカル開発者からのものであり、非稼働のものはステージングサーバーからのものであり、したがってデータの違いです。簡単なテストスクリプトをセットアップしてここに投稿します。しかし、私のコマンドラインテストは失敗しました。それらも同様に投稿します。 – JohnP

答えて

1

Freetypeはインストールできません。あなたは実際にあなたのサーバにFreetypeをインストールしてから、--with-freetype-dir =/usr/localオプションを使ってImageMagickを再コンパイルする必要があります。ここで、/ usr/localはFreetypeのインストールパスです。

私が旋回することを与え、私たちは何が起こるか知っている、それは通常は/ usr/local/binに

だと信じ;)

+0

うん、しかし、問題はfreetypeが既にインストールされているが--with-freetype = onオプションで失敗しているということです。私はおそらくそれがインストールされている場所のディレクトリを定義する必要があると思う。私はあなたが言うように、ディレクトリを指定しようとします、多分それは助けるでしょう。ありがとう! – JohnP

+0

私は二重チェックして、コマンドを使用する必要があります:--with-freetype-dir =/path/to/freetype – Brian

+0

申し訳ありません、私は戻ってくるのに時間がかかりました。私たちのシステム管理者は、数回のインストール、削除、再コンパイルを繰り返しました。とにかく、上手く働いています。ありがとう! – JohnP

関連する問題