Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeźroczyste tło dla PNG24 przy uzyciu GD
Forum PHP.pl > Forum > Przedszkole
-michu-
Witam,
problem jest nastepujacy mam skrypt, który wstawia przezroczytego pnga. Wszystko jest ok o ile ten png nie jest PNG24. Wowczas przeźroczyta czesc obrazka zamienia sie w biala czesc. Korzystam z funkcji imagecopy. PNG przgotowywuje w photosgopie. Czy da sie to jakos ominac?
Kihol
Z tego co wiem MSIE nie pokazuje przeźroczystości PNG-ów.. może tutaj tkwi problem ?
andrzejmarek
Jak rozumiem, z otwartego obrazka przez imgcopy wklejasz coś do obrazka z imagecreate...

Problem w tym, że obrazek z imagecreate(truecolor) nie ma przeźroczystego tła. Wypełnij więc przed imgcopy nowy obrazek przeźroczystym kolorem:
  1. <?php
  2. imagefilledrectangle($destImage,0,0,$destSize[0],$destSize[1],imagecolorallocatealpha($destImage,255,255,255,255));
  3. ?>


Jakbyś dalej nie umiał dać sobie rady, pisze na gg:1825740 - chętnie pomogę.

Pozdrawiam
-michu-
DALEJ NIESTEY IMPORTOWANY OBRAZEK MA BIALE TLO sad.gif

  1. <?php
  2.  
  3.  
  4. $width = 200;
  5. $height = 200;
  6.  
  7.  
  8. header("Content-type: image/png");
  9.  
  10. $image = imagecreate( $width, $height );
  11.  
  12.  
  13. $blue_bok = imagecolorallocate($image, 59,154,220 );
  14. imagefilledrectangle($image, 0, 0, 200, 200, $blue_bok);
  15.  
  16. $ramka = imagecreatefrompng("g.png");
  17. imagefilledrectangle($ramka,0,0,200,200,imagecolorallocatealpha($ramka,255,255,255,255));
  18. imagecopy($image, $ramka, 10, 10, 0, 0, 116, 116);
  19.  
  20. imagepng($image);
  21.  
  22.  
  23. ?>
andrzejmarek
Żeby mieć kanał alpha musisz używać imagecreatetruecolor.

Sposób z wypełnianiem kanałem alpha dotyczy sytuacji, gdybyś chciał mieć obrazek wynikowy z przeźroczystym tłem - czyli to co ci podałem wcześniej wrzucasz zamiast tego niebieskiego koloru.

Pozdrawiam

  1. <?php
  2.  
  3.  
  4. $width = 200;
  5. $height = 200;
  6.  
  7.  
  8. header("Content-type: image/png");
  9.  
  10. $image = imagecreatetruecolor( $width, $height );
  11.  
  12.  
  13. $blue_bok = imagecolorallocate($image, 59,154,220 );
  14. imagefilledrectangle($image, 0, 0, 200, 200, $blue_bok);
  15.  
  16. $ramka = imagecreatefrompng("g.png");
  17. imagecopy($image, $ramka, 10, 10, 0, 0, 116, 116);
  18.  
  19. imagepng($image);
  20.  
  21.  
  22. ?>
-michu-
andrzejmarek - jestes wspaniały! dziki wielkie!
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.