Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Grafika PHP problem z kolorami
Forum PHP.pl > Forum > PHP
cros
Glupi problem, ale nie moge go obejsc, mianowicie gdy definiuje kolory do grafiki PHP GD, to gdy zdefiniuje trzeci kolor to ten kolor zawsze jest szary.

Kod
header("Content-type: image/gif");
$img = imagecreate(200,200);
$bialy = imagecolorallocate($img, 255,255,255);
$czarny = imagecolorallocate($img, 0,0,0);
$zielony = imagecolorallocate($img, 0,255,0);

$tekst_font = "tu sciezka do mojego fonta na serwerze";

imageTTFtext($img,8,0,5,20,$bialy,$tekst_font,'bialy'); // Tekst jest koloru bialego
imageTTFtext($img,8,0,5,30,$czarny,$tekst_font,'czarny'); // Tekst koloru czarnego
imageTTFtext($img,8,0,5,40,$zielony,$tekst_font,'zielony'); // Tu tekst zawsze jest szary, bez wzgledu na to jaka wartosc ustawie w zmiennej $zielony


Czyzby mozna bylo operowac na 2 kolorach maksymalnie, czy moze trzeba jakos zwalniac te imagecolorallocate, zeby mozna bylo uzywac kolejnych kolorow?
Jak wykasuje jeden z kolorow, to ten trzeci wtedy jest zielony, jednak gdy mam zdefiniowane 3 kolory to ten trzeci zawsze jest domyslnym kolorem - czyli szarnym - why?
maly_swd
wszystko robisz dobrze:)
Tylko zmien imagecreate na imagecreatetruecolor

tamten z tego co pamietam robi indexowane kolory i bedzie sie gubil
cros
Cytat(maly_swd @ 10.11.2009, 17:58:43 ) *
wszystko robisz dobrze:)
Tylko zmien imagecreate na imagecreatetruecolor

tamten z tego co pamietam robi indexowane kolory i bedzie sie gubil

Oczywiscie pomoglo a wiec daje Pomogl, tylko jeszcze jedno pytanko, jesli chce aby tlem obrazka byl gif, to mam ten sam problem z kolorami.
Czy w tym przypadku tez tr
abf
zeba uzyc tej funkcji co podales? No tak?
Kod
$img = imagecreatetruecolor(200,200);
$img = imagecreatefromgif('tlo.gif');


bo sam juz teraz nie wiem, moze jest taka funkcja jak imagecreatetruecolorfromgif biggrin.gif
Jest jakies wyjscie?

EDIT:
Ok tymczasowo dalem sobie rade zmieniajac obrazek tla z gif na jpeg, teraz kolory sie zgadzaja.
maly_swd
  1. $img_gif = imagecreatefromgif('tlo.gif');
  2. $x=imagesx($img_gif);
  3. $y=imagesy($img_gif);
  4. $img_true= imagecreatetruecolor($x,$y);
  5.  
  6. $zielony = imagecolorallocate($img, 0,255,0)
  7.  
  8. //imagecopy($img_true, $img_gif, 0, 0, 0, 0, $x, $y); // to uzywasz jak nie zmieniasz wysokosci i szerokosci
  9.  
  10. imagecopyresampled($img_true, $img_gif, 0, 0, 0, 0, $x, $y, $x, $y); // tego lepiej uzywac
  11.  
  12. imagegif($img_true); // i robisz z tego gifa:) tylko pamietaj ze gif ma 256 kolorow i jak przesadzisz w tamtym to Ci jakies kolory usredni
  13.  


tak na szybko.
1. pobierasz zawartosc gifa
2. tworzysz obrazek true color (taki jpg lub png24)
3. definiujesz kolory
4. kopiujesz zawartosc gifa do tego nowego colorowego obrazka
5, mozesz po nim rysowac
6. zapisujesz/wyswietlasz juz gifa
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.