Image couleur vers noir et blanc en php
Voici un petit scripte php qui permet de convertir une image couleur en noir et blanc (Niveau de gris en réalité)
Le principe de conversion est assez simple a réaliser, il consiste a récupérer la luminance de chacun des pixels de l’image en utilisant cette proportion:
luminance = (0.30 * R) + (0.59 * G) + (0.11 * B)
Avec R, G ou B une valeur comprise entre 0 et 255
En effet chaque pixel d’une image couleur est composé des valeurs R,G et B.
La transformation consiste ensuite à créer une image en remplacent les valeurs r,g et b par la valeur de la luminance pour chacun des pixels de l’image.
Le code:
function trans_to_nb($file,$file_out){if (file_exists($file)){ $image = imagecreatefromjpeg($file); $x_dimension = imagesx($image); $y_dimension = imagesy($image); $new_image = imagecreatetruecolor($x_dimension, $y_dimension);// for ($x = 0; $x < $x_dimension; $x++) { for ($y = 0; $y < $y_dimension; $y++) { $luminance_running_sum=0; $rgb = imagecolorat($image, $x, $y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $luminance_running_sum = (0.30 * $r) + (0.59 * $g) + (0.11 * $b); $color = imagecolorallocate($image, $luminance_running_sum, $luminance_running_sum, $luminance_running_sum ); imagesetpixel($new_image, $x, $y, $color); } } imagejpeg($new_image, $file_out); return true; }else{ return false; } }
Utilisation
if (trans_to_nb("test.jpg","out.jpg")){echo"<img src="http://www.electronika.fr/blog/wp-admin/out.jpg" />"; } else { echo"erreur fichier source inexistant"; }
Exemple
Attention, veillez a créer le fichier out.jpg dans le même répertoire que le scripte et donner au minimum les droits d’écriture sur out.jpg et de lecture sur test.jpg.
Autres liens sur le traitement d’images
http://perception.inrialpes.fr/people/Boyer/Teaching/L3/analyse.pdf
[…] pour chaque pixel de l’image suivant la couleur de celui-ci. La luminance est calculé avec une formule bien précise (Début de […]
Pingback par » Histogramme d’une image en php | 4 janvier 2009