Maison  >  Article  >  développement back-end  >  Comment puis-je afficher des images binaires directement dans un seul script sans les enregistrer sur le disque ?

Comment puis-je afficher des images binaires directement dans un seul script sans les enregistrer sur le disque ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-08 04:55:02995parcourir

How can I display binary images directly in a single script without saving them to disk?

Afficher les images binaires dans un seul script

Problème :

Les images peuvent-elles être recréées et affichées directement à partir de données binaires dans le même scénario ? Cela implique de traiter les données avec GD ou des outils similaires avant de les afficher dans une balise d'image HTML. L'objectif est d'éviter de sauvegarder les images traitées sur le disque ou d'utiliser des scripts externes.

Solution :

Cela peut être réalisé en utilisant les URI de données dans l'attribut source de l'image. Le format de l'URI des données est :

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

Cette fonction PHP crée un URI de données à partir d'un fichier :

function data_uri($file, $mime) 
{  
  $contents = file_get_contents($file);
  $base64   = base64_encode($contents); 
  return ('data:' . $mime . ';base64,' . $base64);
}

Le code suivant affiche une image à l'aide d'un URI de données :

echo '<img src="' . data_uri('elephant.png', 'image/png') . '" alt="An elephant" />';

Utilisation :

Pour afficher les données d'image binaires traitées, vous pouvez utiliser la fonction data_uri et afficher l'URI résultant comme source d'image comme ceci :

$imagedata1 = file_get_contents('assets/test.png');
$imagedata1 = process_using_gd_or_something($imagedata1);

echo '<img src="' . data_uri('data:image/png;base64,' . base64_encode($imagedata1)) . '" />';

Ce code affichera l'image traitée directement à partir des données binaires sans utiliser de scripts externes ni de stockage sur disque.

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