Image d’encodage Base64
-
09-06-2019 - |
Question
Je suis en train de créer un module complémentaire de recherche ouvert pour Firefox/IE et l'image doit être codée en Base64, alors comment puis-je encoder en base 64 le favicon que j'ai ?
Je ne connais que PHP
La solution
Autant que je me souvienne, il existe un élément XML pour les données d'image.Vous pouvez utiliser ceci site web pour encoder un fichier (utilisez le champ de téléchargement).Ensuite, copiez et collez simplement les données dans l'élément XML.
Vous pouvez également utiliser PHP pour procéder ainsi :
<?php
$im = file_get_contents('filename.gif');
$imdata = base64_encode($im);
?>
Utiliser Le guide de Mozilla pour obtenir de l'aide sur la création de plugins OpenSearch.Par exemple, l'élément icon est utilisé comme ceci :
<img width="16" height="16">data:image/x-icon;base64,imageData</>
Où imageData
sont vos données base64.
Autres conseils
$encoded_data = base64_encode(file_get_contents('path-to-your-image.jpg'));
Mon résumé de RFC2397 est:
Une fois que vous avez obtenu vos données d'image codées en base64, placez-les dans les balises <Image></Image> préfixées par "data:{mimetype};base64,
" ceci est similaire au préfixe fait entre parenthèses de url()
définition en CSS ou dans la valeur citée du src
attribut du img
balise en [X]HTML.Vous pouvez tester l'URL des données dans Firefox en mettant le data:image/...
ligne dans le champ URL et en appuyant sur Entrée, votre image devrait s'afficher.
Pour réellement encoder, je pense que nous devons passer en revue toutes vos options, pas seulement PHP, car il y a tellement de façons de base64 coder quelque chose.
- Utilisez le
base64
outil de ligne de commande.Il fait partie des coreutils GNU (v6+) et est quasiment par défaut dans n'importe quel Cygwin, LjentoiX, GnuWin32 installer, mais pas les BSD que j'ai essayés.Problème:$ base64 imagefile.ico > imagefile.base64.txt
- Utilisez un outil offrant la possibilité de convertir en base64, comme Bloc-notes++ qui a la fonctionnalité sous plugins->Outils MIME->base64 Encode
- Envoyez-vous le fichier par e-mail et affichez le contenu brut de l'e-mail, copiez et collez.
- Utiliser un la toile formulaire.
Une note sur les types MIME :Je préférerais que vous utilisiez l'un des image/png
image/jpeg
ou image/gif
comme je je ne trouve pas la populaire image/x-icon
.Est-ce que ça devrait être image/vnd.microsoft.icon
?Les autres formats sont également beaucoup plus courts.
comparez 265 octets contre 1150 octets :
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAVFBMVEWcZjTcViTMuqT8/vzcYjTkhhTkljT87tz03sRkZmS8mnT03tT89vTsvoTk1sz86uTkekzkjmzkwpT01rTsmnzsplTUwqz89uy0jmzsrmTknkT0zqT3X4fRAAAAbklEQVR4XnXOVw6FIBBAUafQsZfX9r/PB8JoTPT+QE4o01AtMoS8HkALcH8BGmGIAvaXLw0wCqxKz0Q9w1LBfFSiJBzljVerlbYhlBO4dZHM/F3llybncbIC6N+70Q7OlUm7DdO+gKs9gyRwdgd/LOcGXHzLN5gAAAAASUVORK5CYII=
data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAD/////ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv///////////2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb///////////9mZmb/ZmZm//////////////////////////////////////////////////////9mZmb/ZmZm////////////ZmZm/2ZmZv//////ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv//////ZmZm/2ZmZv///////////2ZmZv9mZmb//////2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb//////2ZmZv9mZmb///////////9mZmb/ZmZm////////////////////////////8fX4/8nW5P+twtb/oLjP//////9mZmb/ZmZm////////////////////////////oLjP/3eZu/9pj7T/M2aZ/zNmmf8zZpn/M2aZ/zNmmf///////////////////////////////////////////zNmmf8zZpn/M2aZ/zNmmf8zZpn/d5m7/6C4z/+WwuH/wN/3//////////////////////////////////////+guM//rcLW/8nW5P/x9fj//////9/v+/+w1/X/QZ7m/1Cm6P//////////////////////////////////////////////////////7/f9/4C+7v8xluT/EYbg/zGW5P/A3/f/0933/9Pd9//////////////////////////////////f7/v/YK7q/xGG4P8RhuD/MZbk/7DX9f//////4uj6/zJh2/8yYdv/8PT8////////////////////////////UKbo/xGG4P8xluT/sNf1////////////4uj6/zJh2/8jVtj/e5ro/////////////////////////////////8Df9/+gz/P/////////////////8PT8/0944P8jVtj/bI7l/////////////////////////////////////////////////////////////////2yO5f8jVtj/T3jg//D0/P///////////////////////////////////////////////////////////3ua6P8jVtj/MmHb/+Lo+v////////////////////////////////////////////////////////////D0/P8yYdv/I1bY/9Pd9///////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
Vérifiez l'exemple suivant
<?php
// First get your image
$image = 'path-to-your-picture/image.jpg';
$picture = base64_encode(file_get_contents($image));
echo '<img width="100" height="100" src="data:image/jpg;base64,'. $picture .'" />'
?>
Google m'a conduit à ce solution (base64_encode).J'espère que cela t'aides!