Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][GD] nałożenie na jpega ramki
Forum PHP.pl > Forum > Przedszkole
sirkus
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. ?>
Wicepsik
Wykasuj @ przed funkcjami. Wypluwa błędy?
sirkus
brak błędów, pusta strona
Pawel_W
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
bikebog
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.
gcdreak
Jeśli to ma być na stronie to czy nie mógbyś tego zrobić w CSS?
Pawel_W
a potem ktoś da zapisz jako i co?

będzie sama ramka ;o
sirkus
dzięki Pawel_W poukładanie wszystkiego i zamiana miejscami gif'a z jpg'iem i się udało, thx
gcdreak
@Pawel_W
...i się nauczy, żeby nie sięgać po cudzą własność;P
bikebog
Jak zajrzysz w źródło pliku to i tak ściągnie:p
gcdreak
Doskonale o tym wiem.
Z drugiej strony to ktoś musiałby poświęcieć chwilę, żeby na wpaść,
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.