Position actuelle: Accueil> Derniers articles> Flip Dynamic Images: Combinez ImageGif () pour traiter plusieurs images

Flip Dynamic Images: Combinez ImageGif () pour traiter plusieurs images

M66 2025-06-02

Dans PHP, ImageFlip () est une fonction très pratique qui peut être utilisée pour retourner les images. Il peut retourner des images statiques, mais lorsque vous travaillez sur des images dynamiques (comme les animations GIF), comment gérez-vous chaque cadre? Cet article combinera la fonction ImageGif () pour introduire comment retourner l'animation GIF Cadre by Frame.

Étape 1: Chargez l'image GIF

Tout d'abord, vous devez charger une animation GIF et obtenir chaque trame de l'image. Nous pouvons charger des images dynamiques via ImageCreateFromGif () et utiliser ImageGif () pour enregistrer les résultats de modification de chaque trame.

 <?php
// charger GIF Photos de films
$imagePath = "path_to_your_gif.gif";
$image = imagecreatefromgif($imagePath);

// Obtenir GIF Nombre de cadres
$frames = [];
$delays = [];
$frameCount = count($frames);

for ($i = 0; $i < $frameCount; $i++) {
    // 逐帧Obtenir图像
    $frame = imagecreatefromgif($image);
    $frames[] = $frame;
    $delays[] = 100; // Définissez le temps de retard de trame sur100
}
?>

Étape 2: Utilisez ImageFlip () pour retourner chaque trame

Pour chaque trame de l'image, nous pouvons utiliser ImageFlip () pour retourner l'image. ImageFlip () peut accepter un paramètre directionnel tel qu'un flip horizontal ou vertical. Les paramètres couramment utilisés comprennent:

  • Img_flip_horizontal : flip horizontal

  • IMG_FLIP_VERTICAL : Flip vertical

Ici, nous choisissons de retourner chaque cadre horizontalement.

 <?php
foreach ($frames as $frame) {
    // utiliser imageflip() Retourner chaque cadre horizontalement
    imageflip($frame, IMG_FLIP_HORIZONTAL);
}
?>

Étape 3: Enregistrer et sortir de nouvelles animations GIF

Ensuite, utilisez ImageGif () pour enregistrer chaque trame traitée sous forme d'animation GIF. Avant d'économiser, nous devons nous assurer que l'ordre et le temps de retard de chaque trame sont appliqués correctement.

 <?php
// Définir la sortie GIF Chemin de fichier
$outputPath = "path_to_output_gif.gif";
$imagegif($frames[0], $outputPath); // Enregistrer le premier cadre

// Enregistrer les cadres restants
for ($i = 1; $i < count($frames); $i++) {
    // Ajouter chaque trame à GIF Photos de films
    imagegif($frames[$i], $outputPath);
}
?>

Étape 4: Ressources gratuites

Une fois le traitement d'image terminé, toutes les ressources doivent être publiées pour éviter les fuites de mémoire.

 <?php
// Libérez chaque trame des ressources d&#39;image
foreach ($frames as $frame) {
    imagedestroy($frame);
}
// Ressources d&#39;image originales gratuites
imagedestroy($image);
?>

Résumer

Avec ImageFlip () et ImageGif () , vous pouvez facilement retourner et enregistrer un nouveau cadre d'animation GIF par image. Cette méthode convient particulièrement aux scènes où chaque trame doit être retourné et un nouveau GIF est sorti. Vous pouvez également appliquer différentes méthodes de traitement à chaque trame, ou même ajouter des effets d'animation au besoin.