Php rogner photo

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

3 réponses

  1. t'es obligé de le faire en php?? tu peux pas utiliser un logiciel photo?
    0
    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
      1. Contributeur
        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