Следующий блок кода PHP должен принимать this image в качестве входных данных SND производить this image в качестве выходного сигнала (преобразование черного до желтого и светло-синего до черного цвета):Php Преобразование изображения не делает то, что я ожидаю, что это делать
Тем не менее, я получаю this image вместо вывода.
Может ли кто-нибудь увидеть проблему с моим кодом?
$im = imagecreatefrompng("./input.png");
$width = imagesx($im);
$height = imagesy($im);
$new = imagecreate($width, $height);
imagecopy($new, $im, 0, 0, 0, 0, $width, $height);
imagecolorset($new, imagecolorexact($new, 0, 0, 0), 255, 255, 0);
for($i = 0; $i < $width; $i++) {
for($j = 0; $j < $height; $j++) {
$index = imagecolorat($new, $i, $j);
$rgb = imagecolorsforindex($new, $index);
if($rgb['red'] != 255 && $rgb['green'] != 255 && $rgb['blue'] != 0) {
echo '(' . $i . ', ' . $j . ')' . 'color => (' . (255 - $rgb['blue']) . ', ' . (255 - $rgb['blue']) . ', 0)<br />';
$color = imagecolorallocate($new, 255 - $rgb['blue'], 255 - $rgb['blue'], 0);
imagesetpixel($new, $i, $j, $color);
}
unset($index);
unset($rgb);
}
}
imagepng($new, 'tesst.png');
imagedestroy($im);
imagedestroy($new);
http://quicksnaildesign.com/error.png –
что-то со временем исполнения, может быть. он работает, но он прекращает преобразование после 100 пикселей по ширине или около того. –
Я проверяю это «эхо», чтобы увидеть пиксель (x, y), который я достигал в for, и кажется, что я добираюсь до всех из них, и они также действительны (от 0 до 255).Проблема заключается в следующем: $ color = imagecolorallocate ($ new, 255 - $ rgb ['blue'], 255 - $ rgb ['blue'], 0); imagesetpixel ($ new, $ i, $ j, $ color); –