如何计算图像中的像素数(php)

时间:2012-10-28 23:12:51

标签: php

请帮我计算一下图像中的像素数,或者输出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); 
?>

对不起我来自乌克兰的英语

1 个答案:

答案 0 :(得分:5)

图像中的像素数就是高度乘以宽度。

但是,我认为这就是你想要的:

<?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); 
?>

这会将图像的所有像素数据存储在pxlCorpxlCorArr数组中,然后您可以操作这些数据以输出所需的数据。

数组是一个二维数组,这意味着您可以使用从$pxlCorArr[y][x]开始的[0][0]来引用单个像素。