Script php: Convertire immagini a colori in bianco e nero

   difficoltà:  script script script script script

Script simili
14/5/2008


Vediamo come trasformare in pochi passi un'immagine a colori in una in bianco e nero con le librerie GD di php.
Il primo metodo è più semplice e pulito, ma in alcuni casi non potrete usarlo, infatti funziona solo con una versione di php superiore alla 5, poichè in essa è stata introdotta la funzione imagefilter().

<?
header( "content-type: image/jpg" );
$im = imagecreatefromjpeg('images/immagine.jpg');
imagefilter($im, IMG_FILTER_GRAYSCALE);
imagejpeg($im);
imagedestroy($im);
?>

Nel caso visto sopra visualizzeremo direttamente a schermo l'immagine in bianco e nero, che non verrà salvata da nessuna parte.
images/immagine.jpg sarà la nostra immagine a colori.

Se volessimo invece di visualizzare l'immagine a schermo salvarla basterà modificare così lo script, dicendo dove salvare l'immagine in bianco e nero e con quale nome:
<?
$im = imagecreatefromjpeg('images/immagine.jpg');
imagefilter($im, IMG_FILTER_GRAYSCALE);
imagejpeg($im, 'images/immagine_bianconero.jpg');
imagedestroy($im);
?>

Come vedete  l'uso è molto semplice e veloce. Ricordarsi nell'utilizzo però di avere PHP 5, le librerie GD attive e i permessi di scrittura nella cartella di destinazione del file.

Se abbiamo PHP 4, sempre però con le librerie GD attive ecco la soluzione alternativa a imagefilter:
<?
header( "content-type: image/jpg" );
$im = imagecreatefromjpeg('images/background.jpg');
$sx=imagesx($im);
$sy=imagesy($im);
$filter=imagecreatetruecolor($sx,$sy);
imagecopymergegray($im,$filter,0,0,0,0,$sx,$sy,0);
imagejpeg($im);
imagedestroy($im);
?>

Anche in questo caso per salvare l'immagine in bianco e nero  scriveremo:
<?
$im = imagecreatefromjpeg('images/background.jpg');
$sx=imagesx($im);
$sy=imagesy($im);
$filter=imagecreatetruecolor($sx,$sy);
imagecopymergegray($im,$filter,0,0,0,0,$sx,$sy,0);
imagejpeg($im, 'images/immagine_bianconero.jpg');
imagedestroy($im);
?>





Lascia un commento


Codice di controllo*:
Nome*:
Email/Link:
Testo*:
 
I campi contrassegnati con * sono obbligatori.