Position actuelle: Accueil> Derniers articles> ImageFlip () et Image Pixel Points Change Analysis

ImageFlip () et Image Pixel Points Change Analysis

M66 2025-06-01

Dans PHP, la fonction ImageFlip () est un outil utile pour retourner une image. Il peut retourner l'image horizontalement, verticalement ou les deux, ce qui est très utile pour les tâches de traitement d'image telles que la création d'effets miroir, la correction de l'image, etc. Mais en regardant plus profondément, comment change-t-il exactement les points de pixel d'une image? Cet article révélera son impact spécifique à travers des exemples et des illustrations.

ImageFlip () Fonction Introduction

ImageFlip () fait partie de la bibliothèque PHP GD et est utilisé pour retourner une image. Le prototype de fonction est le suivant:

 bool imageflip(GdImage $image, int $mode)

Lorsque $ image est la ressource d'image cible, le mode $ est le mode inversé et les constantes prises en charge sont les suivantes:

  • IMG_FLIP_HORIZONTAL : Flip horizontal (de gauche à droite)

  • IMG_FLIP_VERTICAL : Flip verticalement (de haut en bas)

  • Img_flip_both : flip horizontalement et verticalement simultanément

Exemple: comparaison des changements de point de pixels

Voici un exemple simple de la façon de créer une image, de le retourner et de voir les changements de pixel avant et après flip:

 <?php
// Créer une ressource d&#39;image simple (3x3Pixels)
$image = imagecreatetruecolor(3, 3);

// La couleur de remplissage est pratique pour distinguer
$colors = [
    imagecolorallocate($image, 255, 0, 0),   // rouge
    imagecolorallocate($image, 0, 255, 0),   // vert
    imagecolorallocate($image, 0, 0, 255),   // bleu
];

// 设置Pixels点(Peut être considéré comme une matrice bidimensionnelle)
imagesetpixel($image, 0, 0, $colors[0]); // En haut à gauche
imagesetpixel($image, 2, 0, $colors[1]); // En haut à droite
imagesetpixel($image, 1, 2, $colors[2]); // Moyen et inférieur

// 输出翻转前的Pixels颜色(Pour le débogage)
function printPixelColors($img) {
    for ($y = 0; $y < imagesy($img); $y++) {
        for ($x = 0; $x < imagesx($img); $x++) {
            $rgb = imagecolorat($img, $x, $y);
            $colors = imagecolorsforindex($img, $rgb);
            echo "($x,$y): R={$colors['red']} G={$colors['green']} B={$colors['blue']}\n";
        }
    }
    echo "----\n";
}

echo "翻转前Pixels:\n";
printPixelColors($image);

// Effectuer un flip horizontal
imageflip($image, IMG_FLIP_HORIZONTAL);

echo "水平翻转后Pixels:\n";
printPixelColors($image);

// Image inversée de sortie en fichier
imagepng($image, 'https://m66.net/output/flipped_image.png');
imagedestroy($image);
?>

Description du changement de pixel

En supposant que le coin supérieur gauche de l'image d'origine est un pixel rouge (0,0) et que le coin supérieur droit est un pixel vert (2,0) , puis après avoir renversé horizontalement, ils ajusteront la position, c'est-à-dire que le rouge se déplacera vers (2,0) et le vert se déplacera à (0,0) . La couleur bleue (1,2) sous le milieu deviendra également une position symétrique (1,2) (la position verticale reste inchangée lors du retournement horizontalement, donc la position reste inchangée).

La compréhension visuelle consiste à concilier toute l'image devant un miroir.

Scénarios d'application pratiques

  • Effet de miroir d'image : peut être utilisé pour l'aperçu des images lors de la prise de photos

  • Correction d'image : certains périphériques de capture d'image enregistrent les images inversées et peuvent être corrigées par imageflip ().

  • Augmentation des données d'image : les images inversées peuvent augmenter la diversité des données lors de la formation des modèles d'apprentissage automatique

Choses à noter

  • ImageFlip () de PHP nécessite une prise en charge de la bibliothèque GD (PHP 5.5.0+ est intégré)

  • L'opération FLIP modifie directement la ressource d'image d'origine et ne renvoie pas de nouvelle ressource.