Ho bisogno di creare un'immagine in scala di grigi in PHP. Non sto parlando di un'immagine indicizzata con valori in scala di grigi nella sua tavolozza, ma di un'immagine VERO in scala di grigio. La differenza è nel byte 26 del PNG (tipo di colore):Creare un vero PNG in scala di grigi in PHP
0 - greyscale <-- THIS IS WHAT I NEED
2 - RGB
3 - RGB with palette
4 - greyscale + alpha
6 - RGB + alpha
(Vedi How to check a PNG for grayscale/alpha color type? per i dettagli)
ho cercato imagefilter($im, IMG_FILTER_GRAYSCALE);
così come imagetruecolortopalette($im, false, 255);
ma tutto quello che ottiene sono o RGB in scala di grigi (a colori tipo 2) o immagini della tavolozza RGB con una tavolozza in scala di grigi (tipo di colore 3). Ho anche provato a inizializzare l'immagine con imagecreate()
anziché imagecreatetruecolor()
ma di nuovo questo porta solo a un'immagine della tavolozza.
C'è un modo per creare un tipo di colore PNG in scala di grigi con le funzioni GD di PHP (o qualsiasi altra funzione in PHP)?
Ecco alcuni esempi di diverse immagini in scala di grigi per mostrare cosa intendo. Sembrano tutti uguali, ma se li apri in PhotoShop e guardi l'immagine -> Modalità, vedi la differenza. Anche un editor esadecimale rivelerà la differenza nel byte 26:
RGB, colore di tipo 2, 3149 byte
tavolozza RGB, tipo 3, 3971 byte
immagine in scala di grigi vero colore, colore tipo 0, 1105 byte < - questo è quello che mi serve
UPDATE 01:
Ecco il codice di base che utilizzo per creare i PNG. Le righe commentate sono alternative che ho provato:
//$im = imagecreate($image_size, $image_size);
$im = imagecreatetruecolor($image_size, $image_size);
//imagefilter($im, IMG_FILTER_GRAYSCALE);
//imagetruecolortopalette($im, false, 255);
imagepng($im, $imgPathName);
imagedestroy($im);
come appare il tuo codice? – Breezer
@Breezer: vedere "AGGIORNAMENTO 01" nel mio OP. – Jpsy
Immagino che tu stia cercando http://php.net/manual/en/function.imagecolorallocate.php Penso che questo tutorial ti aiuterà lungo la strada, http://php.about.com/od /gdlibrary/ss/grayscale_gd.htm – Breezer