[PHP GD] jak zachowac przezroczystosc w GIF

0

wrzucam na serwer GIFa skaluje go i zapisuje jako gif'a
w jaki sposob moge zachowac jego przezroczystos ??
aktualnie kolor alpha zamienia mi na czarny :(

0

zapewne uzywasz do pomniejszania obrazka funkcji imagecopyresampled() ktora 'wygladza' rysunek podczas zmiany rozmiaru, musisz uzyc funkcji imagecopyresized(). Nie wiem czy to wystarczy, ale jesli nie to jest funkcja imagecolortransparent() ktora ustawia przezroczysty kolor w obrazie w tym przypadku czarny jako przezroczysty.

PS. Wydaje mi sie jednak ze pomniejszanie gifa z przezroczystoscia nie ma sensu, chyba ze zamierzasz pomniejszac go w 50%, 25% 12,5%, itp., w innych przypadkach uzyskasz brzydkie poszarpane ksztalty, gdyz uzyta zostala funkcja imagecopyresized. Ktora nie wygladza rysunku. Jesli zas uzylbys copyimageresampled to rysunek mialbys gladki ale jesli wskazal bys kolor przezroczysty w rysunku to otrzymalbyc poswiate wokol styku obrazka z tlem co wyglada jeszcze gorzej niz pierwszy przydapek, tak wiec ogolnie odradzam pomniejszanie przezroczystych gifow...

0

Ja tak trochę OT... bo nie mam czasu tego sprawdzić...

Czy skalują się też animowane gify ?

0

no niestety imageColorTransparent() i imageColorAllocate() nie dziala w moim przypadku, moze dziala to jak sie tworzy nowy obrazek i okresla mu sie przezroczystosc.... a co jak ja wczytuje GIFa juz z przezroczystoscia... i nie wiem ktory kolor jest przezroczysty :/

0

po pierwsze przezroczystosc nie jest wlasnoscia koloru tylko obrazu
ja to zrobilem tak:

  • wczytuje gifa ktory ma przezroczystosc
  • tworze nowy obrazej o innych rozmiarach
  • alokuje mu jakis kolor
  • ustalam ten kolor ze w tym nowym obrazku bedzie przezroczysty
  • kopiuje wczytanego gifa funkcja imagecopyresized na nowy obrazek i juz

1 użytkowników online, w tym zalogowanych: 0, gości: 1