Как наложить прозрачный gif на другое изображение

1. Максим (18.08.2010 / 17:21)
с сохранением прозрачности???

2. KOZZ (18.08.2010 / 17:22)
ну так вырежи пустоты на обоих изображениях, и накладывай, в чем проблема?

3. Максим (18.08.2010 / 17:39)
там углов немеренно. я с GD мало работал. дайте плиз код

4. Максим (18.08.2010 / 19:57)
что никто не знает?

5. Александр (18.08.2010 / 20:29)
http://php.su/functions/?imagecopymerge если не ошибаюсь.

6. Максим (19.08.2010 / 08:57)
5. Муз-ТВ, это почти то, но это росто наложение без прозрачности

7. Phantom (25.08.2010 / 14:19)
SPunk, попробуй перевести в тру колор. Я как-то делал, сейчас точный порядок действий не помню.

8. Александр (25.08.2010 / 14:36)
Недавно пришлось вспомнить функции gd)
<?php
function img($img,$img2,$q=30){
$dest = imagecreatefromjpeg($img); 
$src = imagecreatefrompng(img2);
$x=imagesx($dest);
$y=imagesx($dest);
imagecopyresampled ($dest,$src,0,0,0,0,$x,$y,$x,$y+20);
imagejpeg($dest,$img,$q);
imagedestroy($dest);
imagedestroy($src);
}
?>


9. ZaRiN (25.08.2010 / 17:00)
//$main_img_obj – идентификатор изображения, на которое добавляется надпись
//
//$watermark_img_obj – ид. изображения прозрачного png8
//
//$alpha_level – прозрачность (0 – прозрачное, 100 – полностью непрозрачное)
class watermark2
{
function create_watermark( $main_img_obj, $watermark_img_obj, $alpha_level = 100 )
{
$watermark_width = imagesx($watermark_img_obj);
$watermark_height = imagesy($watermark_img_obj);

$dest_x = 0;
$dest_y = imagesy($main_img_obj) - $watermark_height;
imagecopymerge($main_img_obj, $watermark_img_obj, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $alpha_level);

return $main_img_obj;
}
}


10. ZaRiN (25.08.2010 / 17:01)
$watermark = new watermark2();
$img = imagecreatefromjpeg($pic);
$water = imagecreatefrompng("watermark.png");}
$old=$watermark->create_watermark($img,$water,100);

11. ZaRiN (25.08.2010 / 17:02)
Если что-то непонятно пиши в личку, помогу smile
думаю что тебе именно это нужно

12. KOZZ (25.08.2010 / 17:08)
9, недавно сам колупал этот класс ))
зачем там именно класс О.о - можно же вытащить просто функцию, при этом ничего не потеряешь

13. ZaRiN (25.08.2010 / 18:18)
12, копирнул то что давно сам использовал, можно и так)
function create_watermark( $main_img_obj, $watermark_img_obj, $alpha_level = 100 ) 
{ 
$watermark_width = imagesx($watermark_img_obj); 
$watermark_height = imagesy($watermark_img_obj); 

$dest_x = 0; 
$dest_y = imagesy($main_img_obj) - $watermark_height; 
imagecopymerge($main_img_obj, $watermark_img_obj, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $alpha_level); 

return $main_img_obj; 
}

$img = imagecreatefromjpeg($pic);
$water = imagecreatefrompng("watermark.png");
$old = create_watermark($img,$water,100);


14. Максим (27.08.2010 / 11:04)
Спасибо парни) я ща так и дописываю скрипт парсера погоды с яндекса в графическом отображении информера, у меня есть не прозрачная картинка и на нее нужно былобы наложить другую картинку солнышко или тучи и т.д. просто наложить у меня получается, но вокруг солнца белый фон и мне надо от него избавиться

15. Максим (27.08.2010 / 11:07)
Тупо залить белый фон солнышка цветом фона 1картинки не выход, там градиент

16. Михаил (27.08.2010 / 11:54)
Gif по определению не может быть прозрачным. Так что заливай градиентом, либо используй png.

17. Максим (27.08.2010 / 11:59)
16. ingate, нет, кокрас то гиф может быть прозрачным, вспомни элементарно смайлы...

18. Александр (27.08.2010 / 12:03)
14, там есть функция "определить цвет как прозрачный" попробуй её.

19. Максим (27.08.2010 / 12:32)
18. Муз-ТВ, Как она называется?!

URL: https://visavi.net/topics/12747