Работаю с изображением через php gd.
$original = imagecreatefromjpeg($img_src);
$im = imagecreatetruecolor(imagesx($original), imagesy($original));
for ($x = 0; $x < imagesx($original); $x++)
{
for ($y = 0; $y < imagesy($original); $y++)
{
$rgb = imagecolorat($original, $x, $y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
echo "<p>".$r."/".$g."/".$b."/"."</p>";
$r = $x;
$g = $y;
$b = $x+$y;
echo "<p>".$r."/".$g."/".$b."/"."</p>";
echo "<hr>";
$color = imagecolorallocate($im, $r, $g, $b);
imagesetpixel($im, $x, $y, $color);
}
}
Для примера создается пустое изображение размером с экземпляр, и заполняется тестовыми rgb цветом.Так вот,после работы данного скрипта,снова получаю rgb каждого пикселя и они отличаются от установленных. Ожидается 0/0/0,0/1/1,0/2/2... а получаю 0/2/1,0/2/1,1/3/2... Причем дело не только в тестовых значениях: даже если просто таким алгоритмом скопировать картинку, выделяя rgb , создавая цвет и записывая в новое изображение, будет такая же самая ситуация.57/83/48,61/82/49,61/76/45 после копии читаются как 58/82/48,64/83/51,64/77/47 . Возможно ли каким-то образом записывать/читать rgb без погрешностей? При этом выделение rgb принципиально, т.к. далее с ним будет производится работа и изменение значений.