2

これはライブサーバーでのみ発生します。複数の開発サーバーでは、イメージは期待どおりに作成されています。

ライブ: レッドハット

$ php --version
PHP 5.2.6 (cli) (built: May 16 2008 21:56:34) 
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

GD サポート => 有効な GD バージョン => バンドル (2.0.34 互換)

開発者: Ubuntu 8

$ php --version
PHP 5.2.4-2ubuntu5.3 with Suhosin-Patch 0.9.6.2 (cli) (built: Jul 23 2008 06:44:49) 
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

GD サポート => 有効な GD バージョン => 2.0 以降

<?php
$image = imagecreatetruecolor($width, $height);

// Colors in RGB
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0); 

imagefilledrectangle($image, 0, 0, $width, $height, $white);

imagettftext($image, $fontSize, 0, 0, 50, $black, $font, $text);
imagegif($image, $file_path);
?>

完璧な世界では、ライブ サーバーと開発サーバーが同じディストリビューションを実行することを望みますが、ライブ サーバーは Red Hat でなければなりません。

私の質問は、バンドルされたバージョンの GD を使用して画像の右端が切り取られる特定の違いを知っている人はいますか?

編集:メモリが不足していません。ログ ファイルに生成されるエラーはありません。PHPに関する限り、画像は正しく生成されています。そのため、同梱版の GD 固有の問題であると考えています。

4

5 に答える 5

2

多分あなたはメモリ不足か何かに似ていますか?すべてのログファイルなどを再確認しましたか?

于 2008-09-24T18:46:02.827 に答える
0

$width 出力の値が正しいかどうかを確認しましたか?

于 2009-05-11T21:28:25.787 に答える
0

画像が切れているわけではないかもしれません。文字が切れている可能性があります。

imagettftext($image, $fontSize, 0, 0, 50, $black, $font, $text);

TTF フォントにはオーバーヘッドとパディングがあります。より大きなキャンバスを試して、同じ結果が得られるかどうかを確認してください。

于 2009-05-12T08:40:56.467 に答える
0

イメージにもよる?

最近、PHP と GD に奇妙なバグ/機能があることを発見しました。

背景がすべて白の JPEG (約 3MB) をリサイズして編集しようとすると、失敗することがありました。それは、より大きな (c. 4MB) およびより複雑な背景の他の画像でも動作しました。

GD が画像を開いて編集すると、白い背景の画像がより複雑な画像よりも大きな比率で成長することがわかりました。一部の画像のこの比率により、PHP/GD が失敗し、画像が途中で切り取られました。

ウィリアム

于 2008-10-01T20:44:02.087 に答える
0

100% 一貫性があり、常に同じ場所にありますか? そうでない場合は、リソースの問題である可能性があります。つまり、スクリプトを実行する時間またはメモリの制限です。php.ini 設定の微調整、Web サーバーの再起動、テストを試してください。

于 2008-09-24T18:47:36.800 に答える