Maison > développement back-end > tutoriel php > Comment optimiser le recadrage d'images en PHP pour les grandes images ?

Comment optimiser le recadrage d'images en PHP pour les grandes images ?

Barbara Streisand
Libérer: 2024-11-04 11:27:02
original
805 Les gens l'ont consulté

How to Optimize Image Cropping in PHP for Large 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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal