Last Updated: February 25, 2016
·
1.035K
· beuretv

crop picture with php

Download a picture and crop resize with PHP.

if(substr(strtolower($img['name']),-4)==".png"){



            move_uploaded_file($img['tmp_name'],"blog/img/".$namepost.".png");

            Img::creerMin("blog/img/".$namepost.".png","blog/thumb",$namepost.".png",$width,$height,$qualityimg);



            }



    else if(substr(strtolower($img['name']),-4)==".gif"){


            move_uploaded_file($img['tmp_name'],"blog/img/".$namepost.".gif");

            Img::creerMin("blog/img/".$namepost.".gif","blog/thumb",$namepost.".gif",$width,$height,$qualityimg);



        }



    else if(substr(strtolower($img['name']),-4)==".jpg"){



            move_uploaded_file($img['tmp_name'],"blog/img/".$namepost.".jpg");

            Img::creerMin("blog/img/".$namepost.".jpg","blog/thumb",$namepost.".jpg",$width,$height,$qualityimg);



        }else{
            $erreur = true;
        }

on the top script (require("imgClass.php"))

class Img{


static function creerMin($img,$chemin,$nom,$mlargeur=100,$mhauteur=100,$qualityimg){

    // On supprime l'extension du nom
    $nom = substr($nom,0,-4);
    // On récupère les dimensions de l'image
    $dimension=getimagesize($img);
    // On cré une image à partir du fichier récup
    if(substr(strtolower($img),-4)==".jpg"){$image = imagecreatefromjpeg($img); }
    else if(substr(strtolower($img),-4)==".png"){$image = imagecreatefrompng($img); }
    else if(substr(strtolower($img),-4)==".gif"){$image = imagecreatefromgif($img); }
    // L'image ne peut etre redimensionne
    else{echo 'none'; }
    // Création des miniatures
    // On cré une image vide de la largeur et hauteur voulue
    $miniature =imagecreatetruecolor ($mlargeur,$mhauteur); 
    // On va gérer la position et le redimensionnement de la grande image
    if($dimension[0]>($mlargeur/$mhauteur)*$dimension[1] ){ $dimY=$mhauteur; $dimX=$mhauteur*$dimension[0]/$dimension[1]; $decalX=-($dimX-$mlargeur)/2; $decalY=0;}
    if($dimension[0]<($mlargeur/$mhauteur)*$dimension[1]){ $dimX=$mlargeur; $dimY=$mlargeur*$dimension[1]/$dimension[0]; $decalY=-($dimY-$mhauteur)/2; $decalX=0;}
    if($dimension[0]==($mlargeur/$mhauteur)*$dimension[1]){ $dimX=$mlargeur; $dimY=$mhauteur; $decalX=0; $decalY=0;}
    // on modifie l'image crée en y plaçant la grande image redimensionné et décalée
    imagecopyresampled($miniature,$image,$decalX,$decalY,0,0,$dimX,$dimY,$dimension[0],$dimension[1]);
    // On sauvegarde le tout dans le format d'origine pour utilisation lightbox par exemple
    if(substr(strtolower($img),-4)==".png"){
        imagejpeg($miniature,$chemin."/".$nom.".png",$qualityimg);
    }else if(substr(strtolower($img),-4)==".gif"){
        imagejpeg($miniature,$chemin."/".$nom.".gif");
    }else if(substr(strtolower($img),-4)==".jpg"){
        imagejpeg($miniature,$chemin."/".$nom.".jpg",$qualityimg);
    }
    return true;
}
}

love

1 Response
Add your response

I suggest taking a peek at Imagick: http://php.net/manual/en/imagick.examples-1.php

And I would also like to suggest to check on a mime-type, instead of a filename extension.

over 1 year ago ·