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
Written by Valentin Beuret
Related protips
1 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
·
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Php
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#