Witam Was serdecznie, na wstępie chciałbym przeprosić jeśli źle sformułowałem temat. Mam pewien problem, chciałem napisać sobie skrypt do zamiany .jpg na przeźroczysty .png. Zamiana odbywa się na zasadzie podmianie koloru tła (w podanym poniżej przypadku koloru białego) na kanał alpha, wszystko pięknie działa, lecz pojawia się pewien problem przy wielokrotnej próbie zmiany koloru. A mianowicie:

imagecolorallocate - o ile się nie mylę zwraca uchwyty do pixeli o kolorze białym, w połączeniu w funkcją imagecolortransparet zamienia ten kolor.

  1. <?php
  2. $trans = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
  3. imagecolortransparent($img,$trans);
  4. ?>


Ale chciałbym jednocześnie zamienić kilka kolorów, nie tylko biały lecz np zielony, niebieski, szary etc. Tylko jest pewien problem, powiedzmy że zrobię tak:

  1. <?php
  2. $trans = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
  3. imagecolortransparent($img,$trans);
  4.  
  5. $trans = imagecolorallocate($img, 0x00, 0x00 0x00);
  6. imagecolortransparent($img,$trans);
  7. ?>


I w tym momencie zamiast zamiany koloru białego i koloru czarnego na transparent zamienia się tylko kolor czarny, główkuje już nad tym długo i nie wiem w jaki sposób zamienić kilka kolorów ... tak ażeby nie psuć poprzedniej zamiany. Na forum znalazłem podpowiedź w postaci funkcji imagecolorresolve, ale chyba nic mi po tym jak do imagecolortransparent nie mogę przekazać tablicy, co robię źle, jak to rozwiązać, bo pewnie to banalna sprawa a ja już po wielu kombinacjach idę w zła stronę sad.gif Bardzo dziękuje za pomoc, pozdrawiam.