Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Изменение цвета картинки с помощью php
Форумы портала PHP.SU » » Графика в PHP » Изменение цвета картинки с помощью php

Страниц (1): [1]
 

1. josep - 11 Сентября, 2013 - 13:02:36 - перейти к сообщению
Есть два кода:

1)
PHP:
скопировать код в буфер обмена
  1. <?
  2. header('Content-Type: image/png');
  3.  
  4. $hPhoto = imagecreatefromjpeg('./pho.jpg');
  5. $hMask = imagecreatefromjpeg('./mask.jpg');
  6.  
  7. $hUot = imagecreatetruecolor(100,100);
  8. imagesavealpha($hUot, true);
  9. $black = imagecolorexactalpha($hUot, 0, 0, 0, 127);
  10. imagefill($hUot, 0, 0, $black);
  11.  
  12. for($w=0; $w<imagesx($hPhoto); $w++ ){
  13.         for($h=0; $h<imagesy($hPhoto); $h++ ){
  14.                 $photoCIndex = imagecolorat($hPhoto, $w, $h);
  15.                 $maskCIndex = imagecolorat($hMask, $w, $h);
  16.                
  17.                 $photoColorAr = imagecolorsforindex($hPhoto, $photoCIndex);
  18.                 $maskColorAr = imagecolorsforindex($hMask, $maskCIndex);
  19.                
  20.                 $alpha = 127 - (($maskColorAr['red']/256 + $maskColorAr['green']/256 + $maskColorAr['blue']/256) / 3) * 127;
  21.                
  22.                 $outColorIndex = imagecolorexactalpha($hUot, $photoColorAr['red'], $photoColorAr['green'], $photoColorAr['blue'], $alpha);
  23.                
  24.                 imagesetpixel($hUot, $w, $h, $outColorIndex);
  25.                
  26.         }
  27. }
  28. imagepng($hUot);


и

2)
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $im = "is-3.png";
  4. $image = imagecreatefrompng($im);
  5. if($image)
  6. {
  7.  
  8.  
  9.  
  10.  
  11. if($_GET['red'] < 0) $_GET['red'] = 0;
  12. if($_GET['red'] > 255) $_GET['red'] = 255;
  13. if($_GET['green'] < 0) $_GET['green'] = 0;
  14. if($_GET['green'] > 255) $_GET['green'] = 255;
  15. if($_GET['blue'] < 0) $_GET['blue'] = 0;
  16. if($_GET['blue'] > 255) $_GET['blue'] = 255;
  17.  
  18. $color = imagecolorallocate($image,
  19. $_GET['red'],
  20. $_GET['green'],
  21. $_GET['blue']);
  22.  
  23. imagefill($image, 60, 40, $color);
  24.  
  25. imagesavealpha($image, true);
  26.  
  27. header("Content-type: image.png");
  28.  
  29. imagepng($image);
  30.  
  31. imagedestroy($image);
  32. }


Мне нужна работа скрипта такого как здесь http://wallsticker[dot]com[dot]ua/las-ve[dot][dot][dot]as_vegas_01[dot]html

Изменение цвета картинки!!!!!
(Добавление)
Еще:

есть к примеру картинка барашка, при нажатие на зеленый цвет цвет барашка меняется на зеленый и т.д.

и при этом код выглядит так image.php?color=ffd389
(Добавление)
Помогите плиз))) Уже месяц моз взрываю, а времени на обучение нет
2. esterio - 11 Сентября, 2013 - 13:13:25 - перейти к сообщению
1. там JS
2. у вас ПХП иньекция. что будет если я например передам в GET[red] = 'bar';
GET[red] если привести его к числу будет 0. Значит условие
josep пишет:
if($_GET['red'] < 0) $_GET['red'] = 0;
if($_GET['red'] > 255) $_GET['red'] = 255;

проскочит так как 0 < 0 < 255
3. josep - 11 Сентября, 2013 - 13:35:46 - перейти к сообщению
Да но скорей всего мне надо написать цикл во второй код который будет искать цвет и его заменять!!

Или брать две картинки как в первом коде один маска черно белый а другой картинка бело черный.
Но в этом коде заменяется цвет прозрачности а мне надо что-бы заменялся цвет картинки!
4. esterio - 11 Сентября, 2013 - 14:42:00 - перейти к сообщению
josep пишет:
Или брать две картинки как в первом коде один маска черно белый а другой картинка бело черный.

Именно так. Нужно двигаться в етом направлении

 

Powered by ExBB FM 1.0 RC1