Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/gd2] ImageColorAllocate
Forum PHP.pl > Forum > PHP
zuczek
Prawie wszystko jest ok, oprócz linijki z ImageColorAllocate.
Otóz chcem napisac "tekst" kolorem czarnym ale jak w ImageColorAllocate ustawiam 0,0,0 to "tekst" staje się przeźroczysty ale wystarczy że zmienie na 1,0,0 to kolor przypomina czarny(ale to jednak nie czarny :]). I moje pytanie brzmi:
Jak temu zaradzić?
Myślę też ze jest to związane z tym że tło jest przeźroczyste 0,0,0 , ale jak brałem chocby 0,0,1 to tło od razu robiło się czarne.
  1. <?php
  2. header("Content-type: image/png");
  3. $oz = ImageCreateTrueColor(100,100);
  4. $trans = ImageColorAllocate($oz, 0, 0, 0);
  5. ImageColorTransparent($oz, $trans);
  6. $czarny = ImageColorAllocate($oz, 1, 0, 0); //<-Tu znajduje się problem
  7. ImageString($oz, 2, 1, 1, "tekst", $czarny);
  8. ImagePng($oz);
  9. ImageDestroy($oz);
  10. ?>
Kuziu
Musisz poprostu ustalić inny kolor tłem.

Np. 255,0,255 co daje kolor na maxa różowy czy coś takeigo którego zazwyczaj chyba używa się do prześwitywania, gdyż rzadko występuje on w obrazkach.

czyli np.

  1. <?php
  2. header("Content-type: image/png");
  3. $oz = imagecreatetruecolor(100,100);
  4.  
  5. $bgColor = imagecolorallocate($oz, 255,0,255); // Nasz kolor prześwitujacy i zarazem tła
  6. imagefill($oz , 0,, $bgColor); // Wypełnienie pustego obrazka tym właśnie kolorem
  7. ImageColorTransparent($oz, $bgColor); // Nastawienie go jako transparentego
  8.  
  9. $czarny = ImageColorAllocate($oz, 0, 0, 0); // Twój dawny problem rozwiązany
  10. ImageString($oz, 2, 1, 1, "tekst", $czarny);
  11. ImagePng($oz);
  12. ImageDestroy($oz);
  13. ?>


Rozwiazanie to oczywiście nie zadziała pod IE gdyż on z tego co wiem nie obsluguje transparentrych PNG'ów jak i również źle wyświetla normalne zmieniając im co nieco palette
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.