Position actuelle: Accueil> Derniers articles> Flip + Compress + Enregistrer: un flux de traitement d'image complet

Flip + Compress + Enregistrer: un flux de traitement d'image complet

M66 2025-05-17

Dans le développement quotidien, le traitement d'image est une exigence très courante, telle que l'image FLIP (miroir), la taille de l'image compressée, l'enregistrement d'images optimisées, etc. En PHP, nous pouvons facilement implémenter ces fonctionnalités à l'aide de la bibliothèque GD intégrée.

Cet article vous mènera étape par étape pour saisir pleinement le flux de traitement de la flip d'image, de la compression et de l'enregistrement via PHP. Que vous développez une interface de téléchargement d'image ou que vous créiez un système de gestion d'images, cet article peut vous fournir une référence pratique.

1. Préparation: confirmez si la bibliothèque GD est activée

Assurez-vous d'abord que votre serveur a une bibliothèque GD activée. Vérifiez si la bibliothèque GD est prise en charge en PHP:

 <?php
if (extension_loaded('gd')) {
    echo "GD La bibliothèque est activée";
} else {
    echo "Veuillez installer et activer GD Bibliothèque";
}
?>

2. Chargement de l'image

Utilisons l'image JPEG comme exemple pour charger le fichier image:

 <?php
$imagePath = 'uploads/sample.jpg';
$image = imagecreatefromjpeg($imagePath);
if (!$image) {
    die('Impossible de charger l&#39;image');
}
?>

3. Flip d'image (miroir horizontal / vertical)

Flip horizontal (miroir)

 <?php
function flipImageHorizontally($image) {
    $width = imagesx($image);
    $height = imagesy($image);
    $flipped = imagecreatetruecolor($width, $height);
    
    for ($x = 0; $x < $width; $x++) {
        imagecopy($flipped, $image, $width - $x - 1, 0, $x, 0, 1, $height);
    }
    return $flipped;
}

$image = flipImageHorizontally($image);
?>

Flip vertical

 <?php
function flipImageVertically($image) {
    $width = imagesx($image);
    $height = imagesy($image);
    $flipped = imagecreatetruecolor($width, $height);
    
    for ($y = 0; $y < $height; $y++) {
        imagecopy($flipped, $image, 0, $height - $y - 1, 0, $y, $width, 1);
    }
    return $flipped;
}

// $image = flipImageVertically($image); // Non commis s&#39;il est retourné verticalement
?>

Iv. Compression d'image

La compression de l'image fait généralement référence à l'ajustement de la qualité de l'image lorsqu'il est enregistré. Pour les images JPEG, la qualité de la compression peut être définie lors de l'enregistrement (0-100):

 <?php
$compressedPath = 'uploads/compressed.jpg';
$quality = 75; // Plus la valeur est petite,Plus la compression est élevée,Plus la qualité de l&#39;image est faible

if (!imagejpeg($image, $compressedPath, $quality)) {
    die('Échec de la compression et de l&#39;enregistrement de l&#39;image');
}
?>

5. Enregistrer et sortir le lien d'image traité

Après une compression et une économie réussies, un lien d'accès à l'image peut être donné, par exemple:

 <?php
echo 'Le traitement d&#39;image a réussi,Visiter le lien:<a href="https://m66.net/uploads/compressed.jpg">Cliquez pour afficher l&#39;image</a>';
?>

6. Code d'encapsulation complet (joint)

Vous pouvez également encapsuler l'ensemble du processus en fonction pour améliorer la réutilisabilité:

 <?php
function processImage($inputPath, $outputPath, $flipType = 'horizontal', $quality = 80) {
    $image = imagecreatefromjpeg($inputPath);
    if (!$image) return false;

    if ($flipType === 'horizontal') {
        $image = flipImageHorizontally($image);
    } elseif ($flipType === 'vertical') {
        $image = flipImageVertically($image);
    }

    return imagejpeg($image, $outputPath, $quality);
}
?>

7. Résumé

Grâce à la bibliothèque GD de PHP, nous pouvons traiter les images de manière très flexible, notamment:

  • Charger des fichiers d'image;

  • flip (horizontal / vertical);

  • Comprimer et sauver;

  • Résultats de traitement de sortie.

Ce processus convient à la plupart des scénarios d'application Web, en particulier les fonctions qui doivent être optimisées après que les utilisateurs ont téléchargé des images.

Si vous avez plus de besoins de traitement d'image, comme le recadrage, le filigrane et l'ajustement de la taille, la bibliothèque GD est également compétente et nous apporterons également des articles de traitement d'image plus avancés à l'avenir. Veuillez rester à l'écoute!