2011-02-07 6 views
2

Voudrait transformer cela en noir et blanc .. ne peuvent pas comprendre ce qu'il faut utiliser de imagick ..Imagemagick désature le noir/blanc?

$handle_data = file_get_contents('http://www.bungie.net/Stats/Reach/Nightmap.ashx'); 
//http://www.bungie.net/Stats/Halo3/Nightmap.ashx 
$img = new Imagick(); 
$img->readImageBlob($handle_data); 
$img->writeImage('nightmap/'.$time.'.gif'); 

Répondre

3

L'utilisation Imagick::modulateImage pourrait être une solution sale & rapide. Sale parce que la théorie des couleurs est un domaine assez complexe, et il peut être fait plus pour créer des images en niveaux de gris que de simplement désaturer l'image (comme l'application de différents poids aux canaux de couleur unique).

bool Imagick::modulateImage (float $brightness , float $saturation , float $hue) 

Étant donné une image, et garder brightnesshue à 100%, tout en fixant saturation-0%. Il y a un exemple en bas de la page de documentation qui fait exactement cela.

0

Il y a beaucoup mieux (et tout aussi simple) solution: $im = $im->fxImage('intensity');

Cela applique une fonction à l'image, où l'intensité est égale à 0.299*red+0.587*green+0.114*blue. Cette formule est basée sur la façon dont nos yeux sont plus sensibles aux différentes couleurs, et en tant que telle la différence entre cela et une image en niveaux de gris "plat" est vraiment la nuit et le jour.

Plus de détails ici: