Le traitement d'image est une exigence commune en PHP, en particulier lors de la création, de la modification et de la sortie d'images. Parmi eux, la fonction ImageCreateFromgd2 () est une fonction importante, qui est utilisée pour créer une ressource d'image à partir d'un fichier image au format GD2. Si vous souhaitez capturer le contenu de l'image généré par cette fonction, vous devez généralement utiliser le mécanisme de tampon de sortie (OB_START). Cet article vous apprendra à combiner ob_start () pour capturer la sortie du contenu de l'image à partir d' imageRereateFromgd2 () et afficher la méthode de fonctionnement spécifique.
ImageCreateFromgd2 () est une fonction de PHP pour créer des ressources d'image. Il peut lire les fichiers d'image au format GD2 et renvoyer une ressource d'image. Lorsque vous utilisez cette fonction, nous devons généralement définir le type de contenu de l'image via la fonction en-tête () , puis utiliser des fonctions telles que imagepng () ou imagejpeg () pour sortir l'image.
Cependant, dans certains cas, nous voulons capturer le contenu d'image généré au lieu de le sortir directement au navigateur. Pour le moment, il est nécessaire de combiner ob_start () pour y parvenir.
Voici les étapes pour capturer la sortie de l'image à l'aide des fonctions ob_start () et d'imageRerefromgd2 () :
Démarrer le tampon de sortie <br> Tout d'abord, le tampon de sortie doit être démarré via ob_start () . Cette fonction mettra en cache la sortie ultérieure jusqu'à ce que vous appeliez ob_get_contents () pour obtenir le contenu mis en cache.
Lisez les images GD2 et générez des ressources d'image <br> Utilisez la fonction ImageCreateFromgd2 () pour lire le fichier image GD2 et générer une ressource d'image.
Image de sortie pour tampon <br> Utilisez ImagePng () ou toute autre fonction de sortie d'image pour sortir le contenu de l'image vers le tampon.
Obtenir du contenu de sortie <br> Obtenez le contenu dans le tampon via ob_get_contents () , qui est les données d'image que nous capturons.
Fermez le tampon <br> Terminez le tampon à l'aide de ob_end_clean () ou ob_end_flush () .
Voici un exemple complet d'utilisation ob_start () pour capturer le contenu de sortie de l'image générée par la fonction ImageCreateFromgd2 () :
<?php
// Démarrer le tampon de sortie
ob_start();
// LireGD2Fichiers image et créer des ressources d'image
$image = imagecreatefromgd2('path_to_your_image.gd2');
// Vérifiez si l'image est créée avec succès
if ($image === false) {
die('Impossible de créer une image à partir d'un fichier');
}
// Sortie du contenu de l'image pour tamponner
imagepng($image); // Peut également être utilisé imagejpeg() ou d'autres formats de sortie
// Obtenez le contenu du tampon
$imageData = ob_get_contents();
// Tampon d'extrémité
ob_end_clean();
// Si vous souhaitez enregistrer le contenu de l'image en tant que fichier,Le code suivant peut être utilisé:
file_put_contents('captured_image.png', $imageData);
// Libérez des ressources d'image
imagedestroy($image);
// Script final
echo 'Images capturées et enregistrées。';
?>
ob_start () : Cette fonction démarrera le tampon de sortie de PHP pour s'assurer que le contenu de sortie ultérieur ne sera pas envoyé directement au navigateur, mais sera temporairement stocké en mémoire.
ImageCreateFromgd2 () : Cette fonction lit le fichier d'image GD2 du chemin spécifié et renvoie une ressource d'image.
ImagePng () : Cette fonction sortira l'image au format PNG vers le tampon. Vous pouvez également utiliser d'autres fonctions telles que ImageJPEG () ou ImageGif () selon les besoins.
ob_get_contents () : obtient le contenu dans le tampon de sortie actuel, c'est-à-dire les données d'image capturées.
ob_end_clean () : effacez le tampon et fermez-le.
file_put_contents () : Enregistrez les données d'image capturées en tant que fichier PNG.
ImageDestRoy () : Ressources d'image gratuites pour éviter les fuites de mémoire.
Si vous avez une adresse URL qui contient le nom de domaine et que vous souhaitez remplacer le nom de domaine par m66.net , vous pouvez le faire comme ceci: