Autor Zpráva
janbarasek
Profil
Ahoj,
hraji si se strojovým zpracováním obrazu, už mi něco málo funguje (živá ukázka), ale rád bych přidal další možnosti práce s obrazem - zejména filtry.

Když jsem si napsal script na získávání barvy pixelu, tak jsem použil klasicky dvojici funkcí:

$color = imagecolorsforindex($im, imagecolorat($im, $x, $y));

Problém ale nastal ve chvíli, když jsem s výslednou barvou něco udělal a chtěl jí zase vykreslit do obrázku. Když si ručně definuji barvy přes funkci imagecolorallocate na začátku scriptu, tak je vše OK, ale jen někdy. Když tuto funkci zavolám 256x, tak přestává vracet hodnoty (asi abych nepřesáhl počet barev, nebo já nevím)....

Jsem z toho zmaten, nemáte někdo nějaký tip, jak pracovat v rámci jednoho PNG obrázku generovaného přes PHP GD s více jak 256 barvami? Tj. abych tu funkci mohl zavolat libovolněkrát, zpracovat získané barvy a pak vykreslit nějaký jiný upravený obrázek? Zkoušel jsem hledat a nenašel jsem nic, čeho by se dalo chytit.
Mike8748
Profil
janbarasek:
záleží na způsobu vytvoření obrázku

pokud se použije imagecreate(), tak je obrázek osmibitový, používá paletu a ta má opravdu jen 256 barev

pokud se použije imagecreatetruecolor() tak takové omezení není
janbarasek
Profil
Mike8748:
Děkuji, stačilo použít funkci imagecreatetruecolor() místo imagecreate() a vše funguje!

Dosud jsem vytvářel pouze scripty, které generovaly různé grafy a jednoduché obrázky, takže jsem na hranici 256 barev nikdy nenarazil. Tedy až nyní, když se snažím zpracovávat fotky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: