canal.php 1.56 KB
Newer Older
git's avatar
git committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
<?php
	// Créé une image en négatif
	header('Content-Type: image/jpeg');
	
	
	// On récupère les coefficients !
	if(isset($_GET['canal']) and isset($_GET['file']) )
	{
		// On a des coefficients et un fichier !
		$canal = $_GET['canal'];
		$filename = $_GET['file'];
		
		// Ouverture de l'image
		$im = imagecreatefromjpeg($filename);
		$largeur = imagesx($im);
		$hauteur = imagesy($im);
		
		// Traitement
		for($j=0; $j<$hauteur; $j++)
		{
			for($i=0; $i<$largeur; $i++)
			{
				// On parcourt les lignes et les colonnes et on va modifier chaque pixel.
				// Récupération des proportions de rouge, vert et bleu
				$rgb = imagecolorat($im, $i, $j);
				$red = ($rgb >> 16) & 0xFF;
				$green = ($rgb >> 8) & 0xFF;
				$blue = $rgb & 0xFF;
				
				// On redessine le point
				if($canal==0) imagesetpixel($im, $i, $j, imagecolorallocate($im, $red, 0,0));
				elseif($canal==1) imagesetpixel($im, $i, $j, imagecolorallocate($im, 0, $green,0));
				elseif($canal==2) imagesetpixel($im, $i, $j, imagecolorallocate($im, 0, 0,$blue));
				elseif($canal==3) imagesetpixel($im, $i, $j, imagecolorallocate($im, $red, $green,0));
				elseif($canal==4) imagesetpixel($im, $i, $j, imagecolorallocate($im, $red, 0,$blue));
				elseif($canal==5) imagesetpixel($im, $i, $j, imagecolorallocate($im, 0, $green,$blue));
			}
		}
		
	}
	else
	{
		$im = imagecreatetruecolor(120, 20);
		$text_color = imagecolorallocate($im, 233, 14, 91);
		imagestring($im, 1, 5, 5,  'Error', $text_color);
	}
	
	// Affichage de l'image
	imagejpeg($im, NULL, 90);
	
	// Libération de mémoire
	imagedestroy($im);