Position actuelle: Accueil> Derniers articles> Analyser les données de pixels des images GD2 et modifier les couleurs

Analyser les données de pixels des images GD2 et modifier les couleurs

M66 2025-05-17

Dans PHP, la bibliothèque GD fournit une série de fonctions de traitement d'image puissantes, où ImageCreatefromgd2 est une fonction importante pour charger des images de format .gd2 . Le format GD2 est un format d'image conçu pour un chargement rapide et des taux de compression élevés. Bien qu'il ne soit pas aussi fréquent que JPEG ou PNG, il est très utile dans des scénarios spécifiques.

Cet article présentera comment utiliser la fonction ImageCreateFromGD2 pour lire une image GD2, analyser la couleur de chaque pixel, modifier une zone de couleur spécifique et enregistrer l'image en tant que nouveau fichier.

Étape 1: Préparez l'image GD2

Tout d'abord, vous avez besoin d'un fichier image au format .gd2 . Vous pouvez enregistrer les images existantes au format GD2 via la bibliothèque GD comme suit:

 <?php
$image = imagecreatefrompng('example.png');
imagegd2($image, 'example.gd2');
imagedestroy($image);
?>

Étape 2: Utilisez ImageCreatefromgd2 pour charger l'image

 <?php
$gdImage = imagecreatefromgd2('example.gd2');
if (!$gdImage) {
    die('Impossible de charger GD2 image');
}
?>

Étape 3: Lisez et analysez les couleurs des pixels

Nous pouvons obtenir la largeur et la hauteur de l'image via imagesxx () et imagesy () , puis parcourez chaque point de pixel pour lire la valeur de couleur à l'aide d' imageColorat () .

 <?php
$width = imagesx($gdImage);
$height = imagesy($gdImage);

for ($y = 0; $y < $height; $y++) {
    for ($x = 0; $x < $width; $x++) {
        $rgb = imagecolorat($gdImage, $x, $y);
        $r = ($rgb >> 16) & 0xFF;
        $g = ($rgb >> 8) & 0xFF;
        $b = $rgb & 0xFF;

        // Exemple:Si la couleur est proche du blanc,Modifié en bleu
        if ($r > 200 && $g > 200 && $b > 200) {
            $newColor = imagecolorallocate($gdImage, 0, 0, 255);
            imagesetpixel($gdImage, $x, $y, $newColor);
        }
    }
}
?>

Étape 4: Enregistrer l'image et la sortir

Une fois la modification terminée, nous pouvons enregistrer l'image traitée en tant que nouveau fichier PNG ou GD2, ou le publier directement au navigateur:

 <?php
// Enregistrer comme nouveau GD2 document
imagegd2($gdImage, 'modified.gd2');

// Ou sauver en tant que PNG
imagepng($gdImage, 'modified.png');

// Nettoyez la mémoire
imagedestroy($gdImage);
?>

Conseils

  • ImageColorAllocate () Chaque fois que la couleur est allouée, elle peut entraîner dupliqué les ressources de couleur. Pour l'optimisation, les couleurs communes peuvent être pré-allouées.

  • Les fichiers GD2 sont éventuellement compressés et structurés du répertoire. Pour des options plus avancées, veuillez vous référer au manuel PHP.

Exemple de fichier

Vous pouvez télécharger l'exemple de fichier sur votre serveur à l'adresse suivante (veuillez la remplacer en fonction de votre propre chemin):