Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][GD] Tworzenie pliku PNG z przezroczystym tłem
Forum PHP.pl > Forum > Przedszkole
sweter
Witam,
mam za zadanie w GD (koniecznie w GD - ImageMagick odpada) utworzyć przezroczysty obrazek png, na który nałożę pewną grafikę JPG, tak że po bokach zostanie przezroczysta przestrzeń.
Czy za pomocą GD można coś takiego zrobić?
Dotychczas używałem funkcji imagetruecolor() - ta jednak tworzy czarne tło.
Czy istnieje jakiś prosty sposób na obejście tego problemu? Przeszukałem Google i nic ciekawego nie znalazłem. Może to jest niewykonalne w GD?
Pozdrawiam
Kshyhoo
imagealphablending
imagesavealpha
sweter
Hmm... Użyłem tych funkcji
  1. $im = imagecreatetruecolor(100, 100);
  2.  
  3. imagealphablending($im, false);
  4. imagesavealpha($im, true);
  5.  
  6. header('Content-type: image/png');
  7.  
  8. imagepng($im);

ale nadal pokazuje mi się w przeglądarce czarny kwadrat
Kshyhoo
Może tak:
  1. // tu ew. otwarcie z pliku
  2. $imgX = imagecreatetruecolor(200, 200);
  3. imagealphablending($imgX, false);
  4. imagesavealpha($imgX, true);
  5.  
  6. // tu dalsze operacje na obrazku
  7.  
  8. // zapis obrazka i przesłanie do przeglądarki
  9. header("Content-Type: image/png");
  10. imagealphablending($imgX, false);
  11. imagesavealpha($imgX, true);
  12. imagepng($imgX, NULL);
  13. imagepng($imgX, "$name.png");
  14. chmod("$name.png", 0666);
  15.  
  16. // zwolnienie pamięci
  17. imagedestroy($img1);

Jak widać, funkcje zostały użyte dwukrotnie... przy tworzeniu i przy zapisie osobno.
sweter
Niestety Twój kod również tworzy mi czarny obrazek sad.gif
Kshyhoo
Mój kod to przykład, sam musisz dopasować go do swoich potrzeb. Spróbuj użyć funkcji tak:
  1. imagecolortransparent($img,imagecolorexact($img,0,0,0));
  2. imagealphablending($img, false);
  3. imagesavealpha($img, true);
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.