Intereting Posts
почему этот код добавляет две точки каждый раз, когда выполняется Приложение Android отправляет данные в PHP-скрипт – Ожидание не выполнено Почему debug_backtrace () использует столько памяти? Найти php-файлы со строками, которые содержат более 50 символов PHP и ESB (с Mule) (ESB: Enterprise Service Bus) Как вызвать одну функцию внутри другой функции в одном контроллере в laravel 5.2 Gearman PHP Extension: Dead Job Server = медленный отклик со стороны всех рабочих Как распечатать json в Smarty Как зарегистрировать пользователя на ejabbered, используя php-код PHP-переменные заканчиваются NULL (но работает код)! Есть ли у PHP структуры или перечисления, а если нет, то какая из них лучшая для них? PHP PDO проверяет, существует ли таблица с определенным именем в базе данных mySQL выберите строки, где одинаковые значения столбца начинаются со строки, 2 вопроса Соответствие php-строки с подстановочным знаком *? Переслать данные из одного действия контроллера в другое в yii2

Как перемещаться по всем пикселям изображения?

Я хочу перебрать все пиксели изображения, найти значение rgba этого пикселя и сделать что-то с этими пикселями.

пример

Скажем, у меня есть изображение размером 100×100 пикселей. Я хочу найти значение каждого из этих пикселей с уже выполненной функцией:

function getPixel($image, $x, $y) { $colors = imagecolorsforindex($image, imagecolorat($image, $x, $y)); $inrgba = 'rgba(' . $colors['red'] . ',' . $colors['green'] . ',' . $colors['blue'] . ',' . $colors['alpha'] . ')'; return $inrgba; } 

И сохраните эти значения вместе с размерами изображения, в массиве или массиве массивов. Я хочу использовать конечный результат на странице html.

Как мне это сделать?

 for($x=1;$x<=$width;$x++) { for($y=1;$y<=$height;$y++) { $pixel=getPixel($image, $x, $y); //do something } } 

Что это будет делать, так это найти каждый пиксель в каждом столбце.

 i=iteration pixel coordinate = (x,y) 

Для изображения размером 5 х 5 итерация будет выглядеть так:

 i1 = (1,1) i2 = (1,2) i3 = (1,3) i4 = (1,4) i5 = (1,5) i6 = (2,1) i7 = (2,2) i8 = (2,3) i9 = (2,4) i10 = (2,5) i11 = (3,1) i12 = (3,2) i13 = (3,3) i14 = (3,4) i15 = (3,5) i16 = (4,1) i17 = (4,2) i18 = (4,3) i19 = (4,4) i20 = (4,5) i21 = (5,1) i22 = (5,2) i23 = (5,3) i24 = (5,4) i25 = (5,5) 

Вот полный ответ, без ошибки отказа

 <?php $src = '2fuse.jpg'; $im = imagecreatefromjpeg($src); $size = getimagesize($src); $width = $size[0]; $height = $size[1]; for($x=0;$x<$width;$x++) { for($y=0;$y<$height;$y++) { $rgb = imagecolorat($im, $x, $y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; var_dump($r, $g, $b); } }