получаю строку: альфа, R, G, B;... нужно восстановить .jpg попиксельно

natalie

Новичок
получаю строку: альфа, R, G, B;... нужно восстановить .jpg попиксельно

Здравствуйте,

мне POST приходит строка, которая представляет собой вот что:

0,0,0,0;4f,7e,2a,17;af,80,2d,17;bf,81,30,19;bf,85,30,19;bf,8f,30,18;7f,9b,32,1a;

это пиксели, всего их 1024, они описывают картинку 32x32.

как с помощью GD восстановить из этой строки jpg картинку?

спасибо
 

natalie

Новичок
спасибо, это юзер развлекается с изображением во флешке, а она php отдает результат в таком виде...

-~{}~ 15.02.07 16:12:

вот не получается ничего - черный квадрат рисует... а по моей задумке должна рисовать картинку

ясно, что я тут в коде только часть переменной $cursor привела - строка длинная 1024 пикселя всего, чтоб было изображение 32x32:

Код:
$cursor='4f,7e,2a,17;af,80,2d,17;bf,81,30,19;bf,85,30,19;.... ';
$arr = split ('[;]', $cursor);
//print_r($arr);

header ("Content-type: image/png");
$im = @imagecreatetruecolor(32, 32)
      or die("Cannot Initialize new GD image stream");
      
$transp = imagecolorallocatealpha( $im, 0, 0, 0, 127 );

$k = 0;
for( $i = 0; $i< 31; $i++){
  for( $j = 0; $j<31; $j++){
    imagesetpixel ($im, $i, $j, $arr[$k]);
    $k++;
  }
}

imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
 

Фанат

oncle terrible
Команда форума
принцип работы с незнакомыми задачами называется "от простого к сложному".

почему бы не начать с примера к функции imagesetpixel из мунаулала?

-~{}~ 15.02.07 16:15:

А за собаку, по хорошему, хоть она здесь и не при чем, надо убивать.
потому, что большего издевательства, чем отключить вывод ошибок придти на форум с вопрсом "где у меня ошибка", придумать трудно.
 

phprus

Moderator
Команда форума
natalie
$arr = split ('[;]', $cursor);
Использование сдесь регулярных выражений бессмысленно. Тут лучше использовать [m]explode[/m].

У тебя цикл пройдет только 31 раз, а тебе надо 32. Так как пиксели нумеруются от 0 до N-1 то условие должно выглядеть как $i < N

imagesetpixel ($im, $i, $j, $arr[$k]);
Ты передаеш этой функции не совсем то, что она ожидает. Почтай [m]imagesetpixel[/m]
 
Сверху