Maison > Article > développement back-end > Comment optimiser le recadrage d'images en PHP pour les grandes images ?
Optimisation du recadrage d'images en PHP pour les grandes images
Le code fourni recadre efficacement les images, cependant, il rencontre des limites lorsqu'il s'agit d'images plus grandes. Pour résoudre ce problème, nous devons explorer des techniques permettant de « zoomer » ou de redimensionner les images avant de les recadrer. Cela garantit des résultats cohérents quelle que soit la taille de l'image.
Pour créer des vignettes, la première étape consiste à redimensionner l'image à l'aide de imagecopyresampled(). Déterminez la plus petite dimension de votre image et la dimension correspondante de votre vignette. Par exemple, si votre image mesure 1 280 x 800 px et que la vignette mesure 200 x 150 px, redimensionnez l'image à 240 x 150 px. Cela maintient les proportions de l'image.
Voici une formule généralisée pour créer des vignettes :
<code class="php">$image = imagecreatefromjpeg($_GET['src']); $filename = 'images/cropped_whatever.jpg'; $thumb_width = 200; $thumb_height = 150; $width = imagesx($image); $height = imagesy($image); $original_aspect = $width / $height; $thumb_aspect = $thumb_width / $thumb_height; if ($original_aspect >= $thumb_aspect) { // Image wider than thumbnail $new_height = $thumb_height; $new_width = $width / ($height / $thumb_height); } else { // Thumbnail wider than image $new_width = $thumb_width; $new_height = $height / ($width / $thumb_width); } $thumb = imagecreatetruecolor($thumb_width, $thumb_height); // Resize and crop imagecopyresampled($thumb, $image, 0 - ($new_width - $thumb_width) / 2, // Horizontally center the image 0 - ($new_height - $thumb_height) / 2, // Vertically center the image 0, 0, $new_width, $new_height, $width, $height); imagejpeg($thumb, $filename, 80);</code>
Ce code doit redimensionner et recadrer efficacement les images pour des résultats optimisés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!