Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][GD] nałożenie na jpega ramki, z przezroczystego gif'a
sirkus
post 2.07.2009, 20:11:13
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 7.10.2008

Ostrzeżenie: (0%)
-----


witam,

kombinuje i kombinuje i za cholerę mi się nie udaje

chciałbym tego gifa który w środku jest przezroczysty http://seo-info.pl/templ/1.gif
nałożyc na jakiś inne zdjęcie w postaci jpg np.
http://seo-info.pl/templ/2.jpg
i zapisac jako jpg

nakombinowałem się z różnymi kodami znalezionymi w necie, ostatnim przy jakim zostałem jest ten poniżej bo uniwersalny, ale niestety nie działa mi wogóle a wydaje mi się że powinien, a błędu znaleśc nie mogę:

  1. <?php
  2. $imagesource =  '1.gif';
  3.    $watermarkPath = '2.jpg';
  4.    $filetype = substr($imagesource,strlen($imagesource)-4,4);
  5.    $filetype = strtolower($filetype);
  6.    $watermarkType = substr($watermarkPath,strlen($watermarkPath)-4,4);
  7.    $watermarkType = strtolower($watermarkType);
  8.    
  9.    if($filetype == ".gif")  
  10.        $image = @imagecreatefromgif($imagesource);
  11.    else  
  12.        if($filetype == ".jpg" || $filetype == "jpeg")  
  13.            $image = @imagecreatefromjpeg($imagesource);
  14.        else
  15.            if($filetype == ".png")  
  16.                $image = @imagecreatefrompng($imagesource);
  17.            else
  18.                die();  
  19.    
  20.    if(!$image)
  21.        die();
  22.    
  23.    if($watermarkType == ".gif")
  24.        $watermark = @imagecreatefromgif($watermarkPath);
  25.    else
  26.        if($watermarkType == ".png")
  27.            $watermark = @imagecreatefrompng($watermarkPath);
  28.        else
  29.            die();
  30.        
  31.    if(!$watermark)
  32.        die();
  33.        
  34.    $imagewidth = imagesx($image);
  35.    $imageheight = imagesy($image);  
  36.    $watermarkwidth =  imagesx($watermark);
  37.    $watermarkheight =  imagesy($watermark);
  38.    $startwidth = (($imagewidth - $watermarkwidth) );
  39.    $startheight = (($imageheight - $watermarkheight) );
  40.    imagecopy($image, $watermark,  $startwidth, $startheight, 0, 0, $watermarkwidth, $watermarkheight);
  41. imagejpeg($image, "gotowy1.jpg", 80);
  42.   imagedestroy($image);
  43.  imagedestroy($watermark);
  44. ?>


Ten post edytował sirkus 2.07.2009, 20:12:14
Go to the top of the page
+Quote Post
Wicepsik
post 2.07.2009, 20:17:01
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Wykasuj @ przed funkcjami. Wypluwa błędy?

Ten post edytował Wicepsik 2.07.2009, 20:17:10


--------------------
Go to the top of the page
+Quote Post
sirkus
post 2.07.2009, 20:21:06
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 7.10.2008

Ostrzeżenie: (0%)
-----


brak błędów, pusta strona
Go to the top of the page
+Quote Post
Pawel_W
post 2.07.2009, 20:32:50
Post #4





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


pogmatwany masz ten kod, spróbuj go troche uprościć:
  1. <?php
  2. $imagesource =  '1.gif';
  3.   $watermarkPath = '2.jpg';
  4.   $filetype = strtolower(substr($imagesource, strRpos($imagesource, ".")+1));
  5.   $watermarkType = strtolower(substr($watermarkPath, strRpos($watermarkPath, ".")+1));  
  6.   switch ($filetype)
  7. {
  8. case 'gif':
  9.       $image = @imagecreatefromgif($imagesource);
  10. break;
  11.  
  12. case 'jpg': case 'jpeg':
  13.       $image = @imagecreatefromjpeg($imagesource);
  14. break;
  15.  
  16. case 'png':
  17.       $image = @imagecreatefrompng($imagesource);
  18. break;
  19.  
  20. default:
  21.       die();
  22. break;
  23.  
  24.   if(!$image)
  25.       die();
  26.  
  27.   if($watermarkType == "gif")
  28.       $watermark = @imagecreatefromgif($watermarkPath);
  29.   else if($watermarkType == "png")
  30.       $watermark = @imagecreatefrompng($watermarkPath);
  31.   else
  32.           die();
  33.      
  34.   if(!$watermark)
  35.       die();
  36.      
  37.   $imagewidth = imagesx($image);
  38.   $imageheight = imagesy($image);  
  39.   $watermarkwidth =  imagesx($watermark);
  40.   $watermarkheight =  imagesy($watermark);
  41.   imagecopyresized($image, $watermark,  0, 0, 0, 0, $watermarkwidth, $watermarkheight, $watermarkwidth, $watermarkheight);
  42.   imagejpeg($image, "gotowy1.jpg");
  43. ?>


EDIT:
tak wogole to jak chcesz nalozyc gifa na jpg to
$imagesource = jpg
$watermarkPath = gif

Ten post edytował Pawel_W 2.07.2009, 20:36:22
Go to the top of the page
+Quote Post
bikebog
post 2.07.2009, 20:36:08
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Użyj funkcji imagecopymerge()" title="Zobacz w manualu PHP" target="_manual aby nałożyć jeden obrazek na drugi. Mam nadzieję, że pomogłem.

Pozdrawiam.

Ten post edytował bikebog 2.07.2009, 20:36:49
Go to the top of the page
+Quote Post
gcdreak
post 2.07.2009, 20:49:30
Post #6





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

Ostrzeżenie: (0%)
-----


Jeśli to ma być na stronie to czy nie mógbyś tego zrobić w CSS?
Go to the top of the page
+Quote Post
Pawel_W
post 2.07.2009, 20:53:07
Post #7





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


a potem ktoś da zapisz jako i co?

będzie sama ramka ;o
Go to the top of the page
+Quote Post
sirkus
post 2.07.2009, 21:01:10
Post #8





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 7.10.2008

Ostrzeżenie: (0%)
-----


dzięki Pawel_W poukładanie wszystkiego i zamiana miejscami gif'a z jpg'iem i się udało, thx
Go to the top of the page
+Quote Post
gcdreak
post 2.07.2009, 21:31:22
Post #9





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

Ostrzeżenie: (0%)
-----


@Pawel_W
...i się nauczy, żeby nie sięgać po cudzą własność;P
Go to the top of the page
+Quote Post
bikebog
post 2.07.2009, 21:36:49
Post #10





Grupa: Zarejestrowani
Postów: 44
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Jak zajrzysz w źródło pliku to i tak ściągnie:p
Go to the top of the page
+Quote Post
gcdreak
post 2.07.2009, 22:20:50
Post #11





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

Ostrzeżenie: (0%)
-----


Doskonale o tym wiem.
Z drugiej strony to ktoś musiałby poświęcieć chwilę, żeby na wpaść,

Ten post edytował gcdreak 2.07.2009, 22:22:28
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.07.2025 - 00:43