2011-01-11 16 views
4

phpで画像を作成するときにGDに問題があります。GD:php imagepngは画像に空白を作成します

奇妙なことは、それがphpバージョン5.3.1ではなく、phpバージョン5.2.14では1つのサーバで動作することです。 (私はそれがPHPのバージョンや、これをやっているGD libにだかはわからない。)

alt text このファイルには、変換を使用して作成し、captcha::get_file()内のディレクトリに保存されます。

alt text そして、このファイルはimagecreatefrompng()imagepng()

alt text で生成された私は、スクリプトにいくつかの小さな変更を加えたとGIFを作りました。しかし、まだPNGに問題があります

何が原因ですか?どのように修正できますか?ここで

はphpcodeです:

<?php 
session_start(); 
require_once("./captcha.php"));  

// creates the image with convert and returns the location of the picture 
// document_root/picture/picture.png 
$picloc = captcha::get_file(); 

$image = @imagecreatefrompng($picloc); 

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

imagepng($image); 

imagedestroy($image); 

unlink($picloc); 
?> 
+1

奇妙なことに、前にこのようなものは見たことがありません。私が考えるCaptchaコードのいくつかを表示する必要があります。あなたが 'content-length'を省略するとどうなりますか? gifのような他の形式を使用するとどうなりますか? –

+0

コンテンツの長さを試しましたが、何も変わりませんでした。私はgifを試しますが、問題は解決しません。 –

+0

これについて:http://www.php.net/manual/en/function.imagecreatefrompng.php#90364(真の色を使用) –

答えて

0

ポジティブではないが、問題は、あなたのコンテンツ長ヘッダーであってもよいです。

header('Content-Length: ' . strlen($image)); 

コードのこの時点で、$ imageは文字列ではなくリソースデータ型です。 content-lengthヘッダー行を単に削除し、何が起こるかを見てください。

+0

何も変更されていない –

+0

上記は真のままです。 strlenは文字列の長さを調べるために使われ、$ imageは文字列ではありません。 – dqhendricks

関連する問題