За последние 24 часа нас посетили 16795 программистов и 1621 робот. Сейчас ищут 1413 программистов ...

Прозрачный фон у фото

Тема в разделе "PHP для новичков", создана пользователем alex_zp, 27 апр 2011.

  1. alex_zp

    alex_zp Активный пользователь

    С нами с:
    16 июн 2010
    Сообщения:
    5
    Симпатии:
    0
    Добрый день.
    Пишу скрипт по скруглению углов у фотки, одной из возможностей скругления углов будет задавать цвет фона и возможность делать фон прозрачным. Со скруглением проблем нет, а вот с прозрачностью трудность. Подскажите в что не так пишу в коде.
    PHP:
    1. $size = getimagesize($image_file);
    2. // Top-left corner
    3. $background = imagecreatetruecolor($size[0],$size[1]);
    4. imagecopymerge($background, $image, 0, 0, 0, 0, $size[0], $size[1], 100);
    5. $startx=$size[0]*2-1;
    6. $starty=$size[1]*2-1;
    7. $im_temp = imagecreatetruecolor($startx,$starty);
    8. imagecopyresampled($im_temp, $background, 0, 0, 0, 0, $startx, $starty, $size[0], $size[1]);
    9. $bg = imagecolorallocate($im_temp, hexdec(substr($backcolor,0,2)),hexdec(substr($backcolor,2,2)),hexdec(substr($backcolor,4,2)));
    10. if ($topleft == true) {
    11.     imagearc($im_temp, $startsize, $startsize, $arcsize, $arcsize, 180,270,$bg);
    12.     imagefilltoborder($im_temp,0,0,$bg,$bg);
    13.     if($transparant == true ){imagecolortransparent($im_temp, $bg);}
    14. }
    15. // Bottom-left corner
    16. if ($bottomleft == true) {
    17.     imagearc($im_temp, $startsize, $starty-$startsize,$arcsize, $arcsize, 90,180,$bg);
    18.     imagefilltoborder($im_temp,0,$starty,$bg,$bg);
    19.     if($transparant == true ){imagecolortransparent($im_temp, $bg);}
    20. }
    21. // Bottom-right corner
    22. if ($bottomright == true) {
    23.     imagearc($im_temp, $startx-$startsize, $starty-$startsize,$arcsize, $arcsize, 0,90,$bg);
    24.     imagefilltoborder($im_temp,$startx,$starty,$bg,$bg);
    25.     if($transparant == true ){imagecolortransparent($im_temp, $bg);}
    26. }
    27. // Top-right corner
    28. if ($topright == true) {
    29.     imagearc($im_temp, $startx-$startsize, $startsize,$arcsize, $arcsize, 270,360,$bg);
    30.     imagefilltoborder($im_temp,$startx,0,$bg,$bg);
    31.     if($transparant == true ){imagecolortransparent($im_temp, $bg);}
    32. }
    33. imagecopyresampled($image, $im_temp, 0, 0, 0, 0, $size[0],$size[1],$startx, $starty);
    34.     $name = time().".png";    
    35.     imagetruecolortopalette($image, true, 255);    
    36.     imagepng($image,'images/'.$name);