Je suis en train de créer un module complémentaire de recherche ouverte pour Firefox/IE et l'image doit être encodée en base 64. Comment puis-je encoder en base 64 la favicon que j'ai ?
Je ne connais que le PHP
Je suis en train de créer un module complémentaire de recherche ouverte pour Firefox/IE et l'image doit être encodée en base 64. Comment puis-je encoder en base 64 la favicon que j'ai ?
Je ne connais que le PHP
Si je me souviens bien, il existe un élément xml pour les données de l'image. Vous pouvez utiliser ceci site web pour encoder un fichier (utilisez le champ de téléchargement). Il suffit ensuite de copier et de coller les données dans l'élément XML.
Vous pouvez aussi utiliser PHP pour faire cela comme suit :
<?php
$im = file_get_contents('filename.gif');
$imdata = base64_encode($im);
?>
Utilice Le guide de Mozilla pour obtenir de l'aide sur la création de plugins OpenSearch. Par exemple, l'élément icône est utilisé comme suit :
<img width="16" height="16">data:image/x-icon;base64,imageData</>
Où imageData
est votre donnée en base64.
Dans ce cas, base64_encode ne codera que le "resource handle" de l'image, je crois, voire rien du tout. Vous devez lire le contenu réel du fichier. L'utilisation du site web de l'encodeur base64 devrait fonctionner, cependant.
Cela ne fonctionne pas du tout pour moi. $im
est un resource
et je reçois une erreur base64_encode() expects parameter 1 to be string, resource given
Les commentaires ci-dessus faisaient référence à une édition précédente, hakre a corrigé mon erreur. @stevether cela devrait maintenant fonctionner.
@davidcorda - La brièveté est acceptable, mais des explications plus complètes sont préférables. stackoverflow.com/questions/how-to-answer
Mon synopsis de rfc2397 est :
Une fois que vous avez obtenu vos données d'image codées en base64, placez-les à l'intérieur des balises <Image></Image> préfixées avec " data:{mimetype};base64,
"c'est similaire à la préfixation effectuée dans les parenthèses de url()
dans le CSS ou dans la valeur cotée de la src
de l'attribut img
en [X]HTML. Vous pouvez tester l'url de données dans firefox en mettant la balise data:image/...
dans le champ URL et en appuyant sur la touche Entrée, votre image devrait s'afficher.
Pour l'encodage réel, je pense que nous devons passer en revue toutes vos options, pas seulement PHP, parce qu'il y a tellement de façons d'encoder quelque chose en base64.
base64
outil de ligne de commande. Il fait partie des GNU coreutils (v6+) et est présent par défaut dans tous les systèmes d'exploitation. Cygwin , L i n u x , GnuWin32 mais pas les BSD que j'ai essayés. Problème : $ base64 imagefile.ico > imagefile.base64.txt
Une note sur les mime-types : Je préfère que vous utilisiez l'un des image/png
image/jpeg
o image/gif
comme je ne peut pas trouver le populaire image/x-icon
. Cela devrait-il ê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==
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.