2

画像のピクセル数を数えるか、RGBの配列を出すのを手伝ってください。

これは、配列から1つの要素を取得するスクリプトです。

<?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をごめんなさい

4

1 に答える 1

6

画像のピクセル数は、単に高さに幅を掛けたものです。

しかし、私はこれがあなたが望むものだと思います:

<?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配列に格納されます。これらのデータを操作して、必要なものを出力できます。

$pxlCorArr[y][x]配列は2次元配列です。つまり、で始まる個々のピクセルを参照できます[0][0]

于 2012-10-28T23:18:44.723 に答える