我有一個JSON對象中的像素數據數組。我正在嘗試使用PHP將像素數據重繪爲GD圖像。PHP GD從數組中繪製像素數據停止中間循環
我使用類似如下(注意出於測試目的,我在5000開始的循環索引,大約一半到數組。)
$im = imagecreate($w,$h);
$i=5000;
while($i < count($pixels)){
$item = $data[$i];
$rgb = $item['rgb'];
$pos = $item['pos'];
$col = imagecolorallocate($im, $rgb[0],$rgb[1],$rgb[2]);
imagesetpixel($im , $pos[0], $pos[1], $col);
$i++;
}
header("Content-Type: image/png");
imagepng($im);
看來我的劇本是隻在裁剪出來之前將它放到陣列的下方,並將圖像轉儲出來而不會出錯。
下面是當我通過數組長度的一半開始數組索引時的輸出。我得到了圖像的一小部分。
這是由於內存?或超時?該頁面不需要很長時間來加載或任何...
如果您添加'error_reporting(E_ALL);',使用ini_set('display_errors',true)啓用錯誤報告會出現什麼情況' – KillerX 2012-04-14 07:15:03
您好像正循環到$ pixels數組的長度,但是獲取數據來自$ data數組。我期待的第一件事是這兩個陣列的長度是多少。更一般地說,當我調試這種事情時,我會註釋掉header和imagepng行。然後,out可以在循環中輸出調試消息以查看究竟發生了什麼。 – 2012-04-14 07:18:08
好的,對於這個問題的其他人。這是修復。 使用'imagecreatetruecolor'而不是'imagecreate'。 當使用'imagecreate'時,'imagecolorallocate'似乎只能分配255個顏色。而'imagecreatetruecolor'沒有這樣的限制。 – ndmweb 2012-04-14 07:19:46