J'ai du mal à afficher une image Base64 en ligne.
Comment puis-je le faire ?
<!DOCTYPE html>
<html>
<head>
<title>Display Image</title>
</head>
<body>
<img style='display:block; width:100px;height:100px;' id='base64image'
src='data:image/jpeg;base64, LzlqLzRBQ... <!-- Base64 data -->' />
</body>
</html>
2 votes
developer.mozilla.org/fr/US/docs/Web/HTTP/Basics_of_HTTP/
1 votes
L'extension de l'image est-elle importante dans le src
5 votes
À tous ceux qui lisent cette question et ses réponses... demandez-vous si vous avez réellement besoin de l'encodage base64 ou non. Les navigateurs modernes n'en ont pratiquement jamais besoin. Si vous utilisez l'encodage base64, vous ajoutez 33 % de frais généraux à la taille de l'image, des exigences supplémentaires en termes de CPU et de mémoire lors de l'encodage et du décodage, vous encombrez le DOM avec des données supplémentaires qui n'ont pas besoin d'être là, et vous imposez des limites strictes et incohérentes sur les tailles et les types de ressources. Utilisez plutôt des blobs, des URL d'objets, etc.
3 votes
@Brad parfois, lorsque vous avez besoin que les choses soient autonomes, Base64 est la seule option. En fait, je suis tombé sur cette page en essayant d'écrire un script pour extraire des images d'un carnet Jupyter (qui les enregistre en PNG Base64) dans un fichier HTML à publier comme rapport.
0 votes
@vikarjramun On dirait que vous avez littéralement le seul cas que j'ai lu sur Stack Overflow depuis plusieurs années, où vous avez un cas d'utilisation légitime. Dans ce cas, oui, par tous les moyens, utilisez ce dont vous avez besoin :-)
2 votes
@Brad il y a certainement une meilleure façon de faire ce que je fais, mais je suis paresseux et je ne me soucie pas de la présentation maintenant puisque c'est juste pour envoyer à mes collègues pour discuter. De plus, qui n'aime pas écrire des shells complexes en une ligne pour accomplir ses tâches :)
0 votes
Les images codées en base 64 sont souvent utilisées lorsque le webmestre tente d'empêcher le téléchargement d'images. Certains JS en fonction de la position du curseur par exemple, génèrent une url vers une partie d'une image, ou une image complète encodée en BASE64, et donc pas mise en cache comme une image, ou listée comme un objet image de la page. Soit, il ne peut pas être lu sans maître script le tirant comme un objet image. J'ai maintenant un tel site Web devant moi et je n'ai pas la moindre idée de la façon dont je peux extraire ces images. Je peux les voir même dans le débogueur Mozilla, téléchargées sur l'événement jQuery, et changeant de contenu chaque fois que je déplace la souris.
0 votes
@Brad Un autre cas où l'on a besoin de base64 est l'utilisation d'une sorte de téléchargeur/sélecteur d'images du côté client, où l'utilisateur choisit une image depuis son appareil et où nous voulons la voir à l'écran immédiatement. Le seul endroit où elle existe à ce moment-là est dans le navigateur, donc, pour autant que je sache, base64 est la solution.
1 votes
@StuartAitken Non, c'est manifestement incorrect. Nous avons des URL d'objets depuis près de dix ans. developer.mozilla.org/fr/US/docs/Web/API/URL/createObjectURL Veuillez vous renseigner à ce sujet, et retournez voir tous ceux qui vous ont dit qu'il s'agissait d'une utilisation appropriée de la base64 et répandez la bonne nouvelle que la base64 n'est pas nécessaire pour ce cas d'utilisation.
0 votes
@Brad Haha, c'est excellent, merci. Je dois dire que c'est une petite fonctionnalité étonnamment cachée. C'est vraiment la première fois que je la vois.
0 votes
Il y a beaucoup plus que quelques cas d'utilisation de base64 et dire aux gens d'éviter base64 au lieu de leur apprendre les méthodes appropriées me semble un énorme échec. base64 est parfaitement bien sauf qu'il ne peut pas être mis en cache s'il est utilisé en ligne, donc essayez plutôt de garder son utilisation à l'intérieur des fichiers css afin que le fichier css soit mis en cache contenant la base 64. C'est également utile lorsque vous avez des politiques CORS qui utilisent des en-têtes personnalisés avec des appels entre serveurs, pour simplement renvoyer à quelqu'un une base64 plutôt qu'une url vers une image à laquelle il ne peut pas accéder à moins qu'il ne définisse des en-têtes... c'est-à-dire un simple `<img src=" url/path "> ne marchera jamais.
0 votes
En HTML, les guillemets à utiliser sont "" et non ''.