Пожалуйста, помогите мне подсчитать количество пикселей на изображении или выпустить массив RGB.
Итак, это сценарий, который дает мне один элемент из массива:
<?php $img = "1.png"; $imgHand = imagecreatefrompng("$img"); $imgSize = GetImageSize($img); $imgWidth = $imgSize[0]; $imgHeight = $imgSize[1]; echo '<img src="'.$img.'"><br><br>'; for ($l = 0; $l < $imgHeight; $l++) { for ($c = 0; $c < $imgWidth; $c++) { $pxlCor = ImageColorAt($imgHand,$c,$l); $pxlCorArr = ImageColorsForIndex($imgHand, $pxlCor); } } print_r($pxlCorArr); ?>
извините за мой английский i из ukraine
Количество пикселей в изображении – это просто высота, умноженная на ширину.
Однако, я думаю, это то, что вы хотите:
<?php $img = "1.png"; $imgHand = imagecreatefrompng("$img"); $imgSize = GetImageSize($img); $imgWidth = $imgSize[0]; $imgHeight = $imgSize[1]; echo '<img src="'.$img.'"><br><br>'; // Define a new array to store the info $pxlCorArr= array(); for ($l = 0; $l < $imgHeight; $l++) { // Start a new "row" in the array for each row of the image. $pxlCorArr[$l] = array(); for ($c = 0; $c < $imgWidth; $c++) { $pxlCor = ImageColorAt($imgHand,$c,$l); // Put each pixel's info in the array $pxlCorArr[$l][$c] = ImageColorsForIndex($imgHand, $pxlCor); } } print_r($pxlCorArr); ?>
Это сохранит все пиксельные данные для изображения в pxlCor
и pxlCorArr
, которые затем можно манипулировать, чтобы вывести то, что вы хотите.
Массив – это 2d-массив, что означает, что вы можете отказаться от отдельного пикселя с помощью $pxlCorArr[y][x]
начиная с [0][0]
.