Php rogner photo

oey1_1 -  
Dalida Messages postés 7114 Statut Contributeur -
Bonjour,

comment peut-on rogner proprement une photo uniquement en utilisant php.

J'ai utilisé "imagecopyresampled", mais le probleme c'est que les bordures que j'ai enlevées laissent pour traces des bords noirs. Comment faire pour supprimer ces bords noirs ??

merci d'avance
A voir également:

3 réponses

pashmina Messages postés 710 Statut Membre 71
 
t'es obligé de le faire en php?? tu peux pas utiliser un logiciel photo?
0
oey1_1
 
salut,
oui en effet car ce sont les photos des visiteurs et je ne peux pas tt faire a la main =p
mais j'ai trouvé ma réponse, je crois que imagecopy fonctionne bien
a+
0
Dalida Messages postés 7114 Statut Contributeur 923
 
salut,

si ça t'intéresse, j'utilise cette classe qui fonctionne parfaitement.
<?php
class Thumbnails {
	public static function ResizeImage($image, $newimage, $newwidth=0, $newheight=0) {
		if (!function_exists('ImageTypes'))
			return false;
		list($width,$height,$type) = GetImageSize($image);
		if ($im = self::ReadImageFromFile($image, $type)) {
			if ($newwidth==0)
				$newwidth = ($newheight / $height) * $width;
			else if ($newheight==0)
				$newheight = ($newwidth / $width) * $height;
			elseif ($newheight && ($width < $height))
				$newwidth = ($newheight / $height) * $width;
			else
				$newheight = ($newwidth / $width) * $height;
 
			if (function_exists('ImageCreateTrueColor'))
				$im2 = ImageCreateTrueColor($newwidth,$newheight);
			else
				$im2 = ImageCreate($newwidth,$newheight);
 
			if (function_exists('imagealphablending'))
				imagealphablending($im2, false);
			if (function_exists('imagesavealpha'))
				imagesavealpha ($im2 , true);
 
			if (function_exists('ImageCopyResampled'))
				ImageCopyResampled($im2,$im,0,0,0,0,$newwidth,$newheight,$width,$height);
			else
				ImageCopyResized($im2,$im,0,0,0,0,$newwidth,$newheight,$width,$height);
 
			if (self::WriteImageToFile($im2, $newimage, $type))
				return true;
		}
		return false;
	}
	private static function ReadImageFromFile($filename, $type) {
		$imagetypes = ImageTypes();
		switch ($type) {
			case 1 :
				if ($imagetypes & IMG_GIF)
					return $im = ImageCreateFromGIF($filename);
				break;
			case 2 :
				if ($imagetypes & IMG_JPEG)
					return ImageCreateFromJPEG($filename);
				break;
			case 3 :
				if ($imagetypes & IMG_PNG)
					return ImageCreateFromPNG($filename);
				break;
			default:
				return 0;
		}
	}
	private static function WriteImageToFile($im, $filename, $type) {
		switch ($type) {
			case 1 :
				return ImageGIF($im, $filename);
			case 2 :
				return ImageJpeg($im, $filename, 85);
			case 3 :
				return ImagePNG($im, $filename);
			default:
				return false;
		}
	}
}
?>
0