[PHP] Gif wklejanie obrazka z transparent.

[PHP] Gif wklejanie obrazka z transparent.
RI
  • Rejestracja:ponad 22 lata
  • Ostatnio:prawie 16 lat
0

Witam

Mam oto taki problem, mam sobie obrazek gif z tłem, mam drugi obrazek gif np. z gwiazdką jest to obrazek z przezroczystością tła, czy za pomocą PHP można tą gwiazdkę wkleić na obrazek tła?, tak aby przezroczystość gwiazdki została zachowana na tym tle, sam wynikowy gif nie musi mieć przezroczystość.

Próbowałem wiele rzeczy i zawsze ta gwiazdka była wklejana ale z białym w okół niej tłem.

Czy ma ktoś jakiś sposób?

// popraw temat - Ł tz. co?


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
Demonical Monk
  • Rejestracja:ponad 17 lat
  • Ostatnio:11 miesięcy
0

Czemu koniecznie ten szmaciany format imieniem GIF? Spróbuj z PNGami.


Women were the reason I became a monk - and, ah, the reason I switched back...
RI
  • Rejestracja:ponad 22 lata
  • Ostatnio:prawie 16 lat
0

GIF i PNG co za różnica też nie wyszło mi efekt taki sam jak na Gif.


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
Demonical Monk
  • Rejestracja:ponad 17 lat
  • Ostatnio:11 miesięcy
0

To może kod zarzuć?


Women were the reason I became a monk - and, ah, the reason I switched back...
RI
  • Rejestracja:ponad 22 lata
  • Ostatnio:prawie 16 lat
0
Kopiuj
$g_bg = imagecreatefromgif('bg.gif');
$g_im = imagecreatefromgif('image.gif'); 

$w = imagesx($g_bg);
$h = imagesy($g_bg);

$trans = imagecolorallocate($g_bg, 0, 0, 0);
imagecolortransparent($g_bg, $trans);
imagecopy($g_bg,$g_im,0,0,0,0,$w,$h);

Taki kod, miałem go setkach przeróbek i nie działa z tą przezroczystością. Tak samo nadając kolor przezroczystości $g_im.


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
RO
  • Rejestracja:ponad 21 lat
  • Ostatnio:prawie 7 lat
  • Postów:162
0

Kiedys popelnilem takie cos do nakladania logo na obrazek (logo i plik tla mogly byc gifem, jpgiem albo pngiem - tam gdzie format obsluguje to z przezrczystoscia i kanalem alpha)

Na wejsciu do funkcji podawany jest obrazek i sprawdzany typ obrazka

Kopiuj
     if ($typ_obrazka == "gif"){ $obrazek1 = imagecreatefromgif("$folder/$plik");}
     if ($typ_obrazka == "jpeg"){ $obrazek1 = imagecreatefromjpeg("$folder/$plik");}
     if ($typ_obrazka == "png"){ $obrazek1 = imagecreatefrompng("$folder/$plik");}

     $plik_z_logo = "img/logo.png";
     $obr = getimagesize($plik_z_logo);

     $szer2 = $obr[0]; // tu czytamy rozmiary loga
     $wys2 = $obr[1];

     $pozX = $szer1 - ($szer2 + 15); // i ustawiamy
     $pozY = $wys1 - ($wys2 + 5); // w pozycji na obrazku tla

     $obrazek2 = imagecreatefrompng($plik_z_logo);
     // albo imagecreatefromgif($plik_z_logo); albo imagecreatefromjpg($plik_z_logo);
     imagecopy($obrazek1, $obrazek2, $pozX,$pozY, 0,0,$szer2,$wys2);

     if ($typ_obrazka == "gif"){ imagegif($obrazek1, "$folder/$plik"); }
     if ($typ_obrazka == "jpeg"){ imagejpeg($obrazek1,"$folder/$plik", 90); }
     if ($typ_obrazka == "png"){ imagepng($$obrazek1,"$folder/$plik", 100, PNG_NO_FILTER); }

     ImageDestroy($obrazek1); // zniszcz je !
     ImageDestroy($obrazek2);
RI
  • Rejestracja:ponad 22 lata
  • Ostatnio:prawie 16 lat
0

Dzięki za kod, jednak to nie to.

Chodzi o to że mam rysunek do którego chcę dokleić np. gwiazdkę która jest w gif i ma przezroczystość, czyli nie jest to rysunek "prostokątny", po wklejeniu gwiazdki robi się biały kwadracik zamiast przez przezroczystości w którym jest owa gwiazdka.

Chcę żeby było coś takiego:

user image

A wychodzi mi ciągle tak:

user image


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
0

si, przejrzyj komentarze na pl.php.net przy funkcji imagecopy i pochodnych
jak sobie nie poradzisz to za 2 * [browar] można pomyślec

RI
  • Rejestracja:ponad 22 lata
  • Ostatnio:prawie 16 lat
0

Aleś ... mądry, daj przykład :>


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
0

no na przykład 53 1140 2004 0000 3902 5836 8750

nie no żartuje
próbuj z imagecopymerge

RI
  • Rejestracja:ponad 22 lata
  • Ostatnio:prawie 16 lat
0

Widzę że z ciebie fachowiec jak z koziej d**y trąbka. Próbowałem ze wszystkimi funkcjami copy, transparentami w tym alpha i nic, na stornie którą podałeś już próbowałem ale nie działają, może różnica w wersjach GD, ja mam najnowszą ;). Może ktoś coś konkretnego zaproponuje?


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
Demonical Monk
  • Rejestracja:ponad 17 lat
  • Ostatnio:11 miesięcy
0

Widzę że z ciebie fachowiec jak z koziej d**y trąbka.

Każdy tutaj pomaga w miarę swoich możliwości które często są ponad przeciętne, lecz może się pomylić tym bardziej że za odpowiadanie w postach nie ma żadnych korzyści.

Polecam poczytać w Google, gdzie nawet nieskładne zapytania często trafiają w to co trzeba: http://www.google.pl/search?hl=pl&client=firefox-a&rls=org.mozilla%3Apl%3Aofficial&hs=NQ2&q=image+copy+with+transparent&btnG=Szukaj&lr=


Women were the reason I became a monk - and, ah, the reason I switched back...
0

bo łosiu te funkcje trzeba ze sobą łączyć i to w odpowiedniej kolejności - na tym właśnie polega programowanie
już mówiłem - mogę ci napisać gotowca ale za kasę, bo za lenistwo się płaci

RI
  • Rejestracja:ponad 22 lata
  • Ostatnio:prawie 16 lat
0

No dobra poradziłem sobie, jednak jest kolejny kłopot.

Natomiast zauważyłem że jeżeli wklejany obrazek do innego ma przezroczystość np. 2 pierwsze całe linie poziome to po wklejeniu (imagecopy) jest wyżej o te 2 linie, czyli wyżej o 2 pikselki, przezroczystość 2 pierwszych linii znikły?. Funkcja imagesx i imagesy zwraca prawidłowy wymiar razem z tymi opuszczonymi przez imagecopy, tak samo jest przy imagesetpixel, czy jest jakoś funkcja czy coś aby wiedzieć ile obetnie pikseli, albo pobrać rozmiar wklejanego obrazka ale w rozmiarze pomijające te 2 piksele tak jak imagecopy?


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
nav
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Warszawa
0
rit napisał(a)

// popraw temat - Ł tz. co?

Popraw temat, bo poleci do kosza. Gif? Ale co Gif? Masz? Chcesz się pochwalić? Nie wiesz co to jest? Masz z nim problem? Chcesz wyrazić opinię o nim?

GIF - Google It First.


utf-8 rlz! ٩(ಥ_ಥ)۶
RI
  • Rejestracja:ponad 22 lata
  • Ostatnio:prawie 16 lat
0

Zadowolony ;-)

// nie do końca, bo problem dotyczy przezroczystości przy wklejaniu a nie samej nieumiejętności wklejania - n


IDEA ŁĄCZY MNIE Z GŁÓWNEM!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.