Ok, fondamentalement, je veux que toutes les images soient des carrés de 170x170px. Ainsi, si une image est pas un carré que je veux qu'il soit redimensionnée, puis recadrée au milieu ..Redimensionner puis recadrer PHP
J'ai passé de nombreuses heures à jouer avec cela et je suis nulle part .. J'ai eu à rogner une section de l'image plus grande etc, mais j'ai spécifiquement besoin de l'image à redimensionner, puis recadrée ..
Toute aide serait grandement appréciée.
// get image size of img
$x = @getimagesize($img);
// image width
$sw = $x[0];
// image height
$sh = $x[1];
if($sw > $sh) // Horizontal Rectangle?
{
$newwidth = ($sw/$sh)*170;
$newheight=170;
$x_pos = ($sw - $sh)/2;
$x_pos = ceil($x_pos);
$y_pos=0;
}
else if($sh > $sw) // Vertical Rectangle?
{
$newheight = ($sh/$sw)*170;
$newwidth=170;
$y_pos = ($sh - $sw)/2;
$y_pos = ceil($y_pos);
$x_pos=0;
}
else //Already Square
{
$newheight=170;
$newwidth=170;
}
$im = @ImageCreateFromJPEG ($img) or // Read JPEG Image
$im = @ImageCreateFromPNG ($img) or // or PNG Image
$im = @ImageCreateFromGIF ($img) or // or GIF Image
$im = false; // If image is not JPEG, PNG, or GIF
if (!$im) {
// We get errors from PHP's ImageCreate functions...
// So let's echo back the contents of the actual image.
readfile ($img);
} else {
// Create the resized image destination
$thumb = @ImageCreateTrueColor (170, 170);
// Copy from image source, resize it, and paste to image destination
imagecopyresampled($thumb, $im, 0, 0, 180, $y_pos, 170, 170, $newwidth,
$newheight);
}
Veuillez corriger le formatage. – metrobalderas
Ive fourni un script de travail s'il vous plaît vérifier comme résolu (voir ci-dessous) – Teson