Maison >développement back-end >tutoriel php >Comment afficher des images recréées à partir de données binaires directement en PHP ?

Comment afficher des images recréées à partir de données binaires directement en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-09 13:56:02285parcourir

How to Display Recreated Images from Binary Data Directly in PHP?

Affichage d'images recréées à partir de données binaires en PHP

Une tâche courante consiste à récupérer et à afficher des images stockées sous forme de données binaires. Pour optimiser ce processus, il est souhaitable de traiter et d'afficher les images dans le même script sans avoir besoin de stockage ou de scripts externes.

Solution :

PHP fournit un solution grâce à l’utilisation d’URI de données. Ces URI intègrent des données binaires directement dans HTML, ce qui leur permet d'être affichées sans référencer un fichier externe.

La syntaxe des URI de données est la suivante :

data:[<MIME-type>][;charset="<encoding>"][;base64],<data>

Où :

  • Type MIME : Spécifie le type de données incorporées, tel que "image/png" ou "image/jpeg".
  • charset : Paramètre facultatif spécifiant le codage des caractères des données, généralement "base64".
  • data : Les données binaires codées en base64.

Pour traiter les données binaires, utilisez une fonction PHP appropriée telle que gd_imagecreatefromstring() pour charger l'image à partir du flux binaire. Une fois traitée, reconvertissez l'image en binaire à l'aide de imagepng() ou imagejpeg().

Enfin, encodez les données en base64 à l'aide de base64_encode(). Ces données encodées peuvent ensuite être utilisées comme source pour la balise d'image HTML :

<?php
function data_uri($binary_data, $mime_type)
{
  return 'data:' . $mime_type . ';base64,' . base64_encode($binary_data);
}

// Get binary data of image
$imagedata = get_binary_data();

// Process image
$processed_imagedata = process_image($binary_data);

// Display image using data URI
echo '<img src="' . data_uri($processed_imagedata, 'image/png') . '" alt="Processed Image">';
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn