2011-01-11 98 views
4

當我使用php創建圖像時,GD有一些問題。GD:php imagepng在圖像中創建空白

奇怪的是,它可以在一個服務器上使用PHP版本5.3.1,但不是在PHP 5.2.14版本上。 (我不知道這是否是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

奇怪的是,從未見過這樣的事情。您將需要顯示一些我認爲的驗證碼代碼...如果您省略「內容長度」,會發生什麼情況?如果你使用其他一些格式如gif,會發生什麼? –

+0

我試過內容的長度,但沒有改變。我會嘗試GIF,但它不會解決問題。 –

+0

這個怎麼樣:http://www.php.net/manual/en/function.imagecreatefrompng.php#90364(使用真彩色) – 2011-01-11 19:35:40

回答

0

並不積極,但問題可能出在你的內容長度標題。

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

此時在您的代碼中,$ image是資源數據類型,而不是字符串。嘗試簡單地刪除內容長度標題行,看看會發生什麼。

+0

它沒有改變任何東西 –

+0

以上依然如此。 strlen用於計算字符串的長度,而$ image不是字符串。 – dqhendricks