2012-02-29 13 views
2

私はPHPヘッダーで苦労しています。ファイルに保存せずにブラウザに画像を作成しようとしていますが、何ができるのですかそれを働かせないでください。 PHPヘッダー、コンテンツタイプpngが機能しない

だから例えば私は、PHPのマニュアルから、この基本的な例を使用している場合:

$im = imagecreate(100, 100); 

header('Content-Type: image/png'); 

imagepng($im); 
imagedestroy($im); 

それは正しいヘッダと画像が見つからないときuが取得しても出力そのアイコンを設定します。

も、私はここで、GDが有効になっているxamppを使用するには、私のphpinfo GDの一部です:

GD Support enabled 
GD Version bundled (2.0.34 compatible) 
FreeType Support enabled 
FreeType Linkage with freetype 
FreeType Version 2.4.3 
GIF Read Support enabled 
GIF Create Support enabled 
JPEG Support enabled 
libJPEG Version 6b 
PNG Support enabled 
libPNG Version 1.2.46 
WBMP Support enabled 
XBM Support enabled 

は私のコードが間違っているか、私は何かを設定する必要がありますか?

答えて

2

あなたはだけでなく、画像を作成するだけでなく、それをいくつかの方法を埋める必要があります。

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

$im = imagecreate(100, 100) or die("Cannot Initialize new GD image stream"); 
$background_color = imagecolorallocate($im, 0, 0, 0); 

header('Content-Type: image/png'); 

imagepng($im); 
imagedestroy($im); 
+0

まだ動作しません、私はfirefoxで見ようとしました。これは私が持っているものです: 'イメージ" http:// localhost/test/"はエラーを含んでいるので表示できません。 – Linas

+0

ダブルチェックします。 ://GDが正常に動作していることを確認するために、更新されたコード(失敗の場合はイメージの初期化のために 'die')を試してください。 –

+0

問題は私が<?phpタグの前に空きスペースがあって、これが私の画像を乱してしまったことです:)とにかくヘルプのthatnksを助けてください – Linas

2

PHPは、おそらくので、バイナリ画像データをめちゃくちゃに、エラーメッセージを出力しています。このため、私はいつもdisplay_errorsを無効にし、イメージスクリプトで作業するときはPHP設定でlog_errorsを有効にします。そうすれば、出力を乱すことなくエラーを見ることができます。 PHPエラーが発生していないことが確かであれば、スクリプトの出力全体をファイル(ob_start();、冒頭のfile_put_contents("outfile", ob_get_clean());)にダンプして、16進エディタで分析して、PNGの内容を確認してください。

+0

ありがとう、この情報は将来私を助けます – Linas

関連する問題