Я написал следующий код для фильтрации изображений с использованием усреднения по Box, я думаю, что все сделал правильно, хотя выходное изображение кажется темнее и фильтрация не выполнялась, возможно, я что-то упустил, может кто-то взглянуть на код и помогите мне, как я могу обновить код и получить желаемый результат.
<?php
$resource = imagecreatefrompng("t.png");
//$width = 3;
//$height = 3;
$width = imagesx($resource);
$height = imagesy($resource);
//put pixels values in an array
for($x = 0; $x < $width; $x++) {
$rValueSumForBox=$rValueSumForBox+$r; // Incrimenting Sum of the total r pixel values
$gValueSumForBox=$gValueSumForBox+$g; // Incrimenting Sum of the total g pixel values
$bValueSumForBox=$bValueSumForBox+$b; // Incrimenting Sum of the total b pixel values
$aValueSumForBox=$aValueSumForBox+$a; // Incrimenting Sum of the total b pixel values
//$pixelValueSumForBox= $pixelValueSumForBox+$boxPixelValue; // Adding the pixel value to the total sum
// echo "$xboxPixelAxis $yboxPixelAxis : >> $r $g $b $totalRGB $boxPixelValue  ";
$yboxPixelAxis++;
}
$xboxPixelAxis++;
// echo "<br>";
} // END OF BOX AVERAGE
$rValueAverageForBox=round($rValueSumForBox/($BoxXDimension*$BoxXDimension));
$gValueAverageForBox=round($gValueSumForBox/($BoxXDimension*$BoxXDimension));
$bValueAverageForBox=round($bValueSumForBox/($BoxXDimension*$BoxXDimension));
$aValueAverageForBox=round($aValueSumForBox/($BoxXDimension*$BoxXDimension));
$arrayPixels[$x][$y]=($rValueAverageForBox << 16) + ($gValueAverageForBox << 8) + $bValueAverageForBox + ($aValueAverageForBox << 24); // Assigning pixel
//new pixel value
// echo "$x $y Actual: ".$arrayPixels[$x][$y]." "; echo "Average: ".$arrayAverage ."  ";
}
// echo "<br>";
}
$img = imagecreatetruecolor($width, $height);
for($x = 0; $x < $width; $x++) {
// echo " $x2 <br>";
for($y = 0; $y < $height; $y++) {
// Allocate the color of the pixel
imagesetpixel($img, $x, $y, $arrayPixels[$x][$y]);
}
}
// // Set the image type
header('Content-Type: image/png');
// Create a png file from the image
imagepng($img,'NEW2.png');
// Free memory associated with the image
imagedestroy($img);
//*/
Задача ещё не решена.
Других решений пока нет …