Php rogner photo

Fermé
oey1_1 - 8 janv. 2008 à 17:06
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 8 janv. 2008 à 19:27
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 688 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 5 mai 2010 71
8 janv. 2008 à 17:47
t'es obligé de le faire en php?? tu peux pas utiliser un logiciel photo?
0
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 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
8 janv. 2008 à 19:27
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