J'ai fait cette fonction simple qui est très facile à utiliser, il vous permet de redimensionner, et centrez une image à une largeur et la hauteur, il peut suppert JPGs , PNG et GIF. Ne hésitez pas à copier et le coller dans votre code:
function resize_imagejpg($file, $w, $h, $finaldst) {
list($width, $height) = getimagesize($file);
$src = imagecreatefromjpeg($file);
$ir = $width/$height;
$fir = $w/$h;
if($ir >= $fir){
$newheight = $h;
$newwidth = $w * ($width/$height);
}
else {
$newheight = $w/($width/$height);
$newwidth = $w;
}
$xcor = 0 - ($newwidth - $w)/2;
$ycor = 0 - ($newheight - $h)/2;
$dst = imagecreatetruecolor($w, $h);
imagecopyresampled($dst, $src, $xcor, $ycor, 0, 0, $newwidth, $newheight,
$width, $height);
imagejpeg($dst, $finaldst);
imagedestroy($dst);
return $file;
}
function resize_imagegif($file, $w, $h, $finaldst) {
list($width, $height) = getimagesize($file);
$src = imagecreatefromgif($file);
$ir = $width/$height;
$fir = $w/$h;
if($ir >= $fir){
$newheight = $h;
$newwidth = $w * ($width/$height);
}
else {
$newheight = $w/($width/$height);
$newwidth = $w;
}
$xcor = 0 - ($newwidth - $w)/2;
$ycor = 0 - ($newheight - $h)/2;
$dst = imagecreatetruecolor($w, $h);
$background = imagecolorallocatealpha($dst, 0, 0, 0, 127);
imagecolortransparent($dst, $background);
imagealphablending($dst, false);
imagesavealpha($dst, true);
imagecopyresampled($dst, $src, $xcor, $ycor, 0, 0, $newwidth, $newheight,
$width, $height);
imagegif($dst, $finaldst);
imagedestroy($dst);
return $file;
}
function resize_imagepng($file, $w, $h, $finaldst) {
list($width, $height) = getimagesize($file);
$src = imagecreatefrompng($file);
$ir = $width/$height;
$fir = $w/$h;
if($ir >= $fir){
$newheight = $h;
$newwidth = $w * ($width/$height);
}
else {
$newheight = $w/($width/$height);
$newwidth = $w;
}
$xcor = 0 - ($newwidth - $w)/2;
$ycor = 0 - ($newheight - $h)/2;
$dst = imagecreatetruecolor($w, $h);
$background = imagecolorallocate($dst, 0, 0, 0);
imagecolortransparent($dst, $background);
imagealphablending($dst, false);
imagesavealpha($dst, true);
imagecopyresampled($dst, $src, $xcor, $ycor, 0, 0, $newwidth,
$newheight,$width, $height);
imagepng($dst, $finaldst);
imagedestroy($dst);
return $file;
}
function ImageResize($file, $w, $h, $finaldst) {
$getsize = getimagesize($file);
$image_type = $getsize[2];
if($image_type == IMAGETYPE_JPEG) {
resize_imagejpg($file, $w, $h, $finaldst);
} elseif($image_type == IMAGETYPE_GIF) {
resize_imagegif($file, $w, $h, $finaldst);
} elseif($image_type == IMAGETYPE_PNG) {
resize_imagepng($file, $w, $h, $finaldst);
}
}
Tout ce que vous devez faire pour l'utiliser est l'appeler comme ceci:
ImageResize(image, width, height, destination);
Par ex
ImageResize("uploads/face.png", 100, 150, "images/user332profilepic.png");
http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php – Frankie
qu'avez-vous fait, à ce jour? un script? – ariefbayu
Je ne l'ai pas commencé avec ce projet précis, mais j'essayais de le faire sur des projets passés et je ne pouvais pas le comprendre. J'espérais que quelqu'un connaîtrait un code de base pour me lancer. – Adam