Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/gd2] ImageColorAllocate
zuczek
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 6.06.2005
Skąd: CBŚ

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
"Kraj, który w technice nie postępuje, cofa się" - prof.S.Wł.Bryła
pajacyk.pl - a co Ci szkodzi kliknąć
SOS please someone help me...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Kuziu
post
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

Ostrzeżenie: (0%)
-----


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


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 04:18