8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Comme moi vous connaissez tous les outils par défaut pour créer, redimensionner, rogner ou rééchantillonner une image en PHP...
Et comme moi, vous trouvez peut-être que trop souvent le rééchantillonnage final n'est pas de bonne qualité ! (Par exemple, pour passer une photo de 1800x1500px en 600x500px)

Je voudrais donc savoir si quelqu'un connaît une bonne librairie (ou autre) qui fait des rééchantillonnages de qualité ?

Merci !
Modérateur
Et l'eau,

Je ne vois pas trop l'intéret d'utiliser une librairie pour redimensionner une image. Je t'invite à lire ceci :

<?php
    function redimensionner($img_url,$largeur){
        
        $extension = substr( $img_url, -3 );
        
        $extension = strtolower( $extension );
        
        switch ( $extension ){
            
            case "jpg":
            case "peg": //pour le cas où l'extension est "jpeg"
            $src_im =  imagecreatefromjpeg( $img_url );
            break;
            
            case "gif":
            $src_im = imagecreatefromgif( $img_url );
            break;
            
            case "png":
            $src_im = imagecreatefrompng( $img_url );
            break;
            
            default:
            echo "L'image n'est pas dans un format reconnu. Extensions autorisées : jpg/jpeg, gif, png";
            break;
        }
        
        $size = GetImageSize($img_url);
        $src_w = $size[0];
        $src_h = $size[1];
        
        $dst_w = $largeur;
        
        $dst_h = round(($dst_w / $src_w) * $src_h);
        $dst_im = ImageCreateTrueColor($dst_w,$dst_h);
         
        ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
        
        header("Content-Type: image.jpeg");
        ImageJpeg($dst_im);
        ImageDestroy($dst_im);
        imageDestroy($src_im);
    }
?>


@ plus
Modifié par niuxe (31 Dec 2010 - 15:45)
Quand on utilise imagejpeg, il y a un argument optionnel pour la qualité : .
Il suffit de mettre 100 si tu veux avoir un très bon résultat (en tout cas, moi, je trouve le résultat très bon !).