OVH Cloud OVH Cloud

conversion favicon (text) vers fichier image ?

17 réponses
Avatar
pere.noel
bonjour,


j'ai remarqué que dans le fichier bookmarks.html de firefox les favicons
sont embarquées sous forme de texte :

<a href="http://developer.kde.org/language-bindings/ruby/"
add_date="1136721091" last_visit="1136803316" icon=
"data:image/x-icon;base64,AAABAAEAEBA"..."

comment puis-je faire pour créer un fichier image à partir de ces infos
?


--
une bévue

10 réponses

1 2
Avatar
Pierre Goiffon
Une bévue wrote:
j'ai remarqué que dans le fichier bookmarks.html de firefox les favicons
sont embarquées sous forme de texte :

<a href="http://developer.kde.org/language-bindings/ruby/"
add_date="1136721091" last_visit="1136803316" icon > "data:image/x-icon;base64,AAABAAEAEBA"..."

comment puis-je faire pour créer un fichier image à partir de ces infos
?



En utilisant un décodeur base 64 ? Par exemple l'extension Mnenhy pour
Thunderbird ?
Avatar
pere.noel
Pierre Goiffon wrote:

En utilisant un décodeur base 64 ?


oui d'accord, ça j'ai pigé on peut me^me faire ça on line à cette
adresse :

<http://www.motobit.com/util/base64-decoder-encoder.asp>
Par exemple l'extension Mnenhy pour
Thunderbird ?



mais je cherche un outil en ligne de commande pour l'embarquer dans une
application que je développe...
--
une bévue
Avatar
Xavier Robin
Une bévue a écrit :
bonjour,


j'ai remarqué que dans le fichier bookmarks.html de firefox les favicons
sont embarquées sous forme de texte :

<a href="http://developer.kde.org/language-bindings/ruby/"
add_date="1136721091" last_visit="1136803316" icon > "data:image/x-icon;base64,AAABAAEAEBA"..."

comment puis-je faire pour créer un fichier image à partir de ces infos
?





1. Copier data:image/x-icon;base64,AAABAAEAEBA...

2. L'inscrire dans la barre d'adresse du navigateur

3. Enregistrer l'image qui s'affiche comme n'importe quelle image (clic
droit > "enregistrer l'image" sous ou "Fichier" > "enregistrer").


S'il y a de nombreuses images à extraire, il est peut-être plus facile
de mettre "data:..." en attribut src d'une image dans un fichier html :
<img src="data:image/x-icon;base64,GNAGNAGNA...">

--
Xavier
Avatar
pere.noel
Xavier Robin wrote:


1. Copier data:image/x-icon;base64,AAABAAEAEBA...

2. L'inscrire dans la barre d'adresse du navigateur

3. Enregistrer l'image qui s'affiche comme n'importe quelle image (clic
droit > "enregistrer l'image" sous ou "Fichier" > "enregistrer").


S'il y a de nombreuses images à extraire, il est peut-être plus facile
de mettre "data:..." en attribut src d'une image dans un fichier html :
<img src="data:image/x-icon;base64,GNAGNAGNA...">



ouais, super, merci pour l'astuce, en fait je n'ai pas besoin de décoder
le base64 alors, il me suffit de récupérer le champ icon="..." dan le
fichier bookmarks.html de firefox et le mettre en <img src="<idem>"/>

et ça roule !

j'adore ce genre de solution )))

Yvon
--
une bévue
Avatar
Pierre Goiffon
Une bévue wrote:
mais je cherche un outil en ligne de commande pour l'embarquer dans une
application que je développe...



Euh, au vue de votre autre réponse, je pense qu'il serait fort utile que
vous développiez votre besoin...

Pour le img src, en effet les url en data fonctionnent... dans Firefox
au moins.
Avatar
pere.noel
Pierre Goiffon wrote:

Euh, au vue de votre autre réponse, je pense qu'il serait fort utile que
vous développiez votre besoin...




oui, bonne question, c'est pour une application que je développe et qui
a pour but de "merger" différents fichiers de bookmarks de différents
navigateurs pour pouvoir :

synchroniser les signets entre navigateurs ;
publier (en xhtml et/ou xbel) sue le web tout ou partie du(des)
résultats.

come je trouve que la présentation d'un signet est plus gaie et jolie
avec le favicon associé (si récupéré par le navigateur), je souhaite le
présenter en sortie.

pour l'instant, je n'ai travailler qu'avec safari et firefox, safari
apparemment ne gère pas, au niveau des signets enregistrés les favicons,
donc pour l'instant le problème ne sait poser qu'avec firefox et là si
je récupère l'attribut icon de la balise <a /> d'un signet, je peux
utiliser ce texte comme attribut src d'une balise <img />.

bon, ça roule avec firefox, mais est-ce standard ?

je viens d'essayer avec safari, avec l'astuce citée au-dessus, je me
suis fait une petite page 'favicons.html', safari affiche bien les
favicons mais pas toutes.

dans mon essai la seule favicon non affichée est celle d'HTML Tidy qui
est en 32x32 (uniquement dans le cas de safari)

alors qq questions :

- est-ce que mettre ce texte : "data:image/x-icon;base64,AA<snip />A="

dans l'attribut src d'une image marche pour tout navigateur ?

- dois-je réduire la taille de l'image à 16x16 ?

(dans ce cas il me faut un décodage base64 suivi d'une mise à l'échelle
de l'image.
Pour le img src, en effet les url en data fonctionnent... dans Firefox
au moins.




--
une bévue
Avatar
Pierre Goiffon
Une bévue wrote:
c'est pour une application que je développe et qui
a pour but de "merger" différents fichiers de bookmarks de différents
navigateurs pour pouvoir :

synchroniser les signets entre navigateurs ;
publier (en xhtml et/ou xbel) sue le web tout ou partie du(des)
résultats.

come je trouve que la présentation d'un signet est plus gaie et jolie
avec le favicon associé (si récupéré par le navigateur), je souhaite le
présenter en sortie.



OK

Pour Firefox, c'est un format XML, du XBEL, donc vous devriez facilement
utiliser des outils XML
Dans Internet Explorer, n'en parlons pas, mais je suppose que le format
est tout aussi différent dans Opera et Safari ?

alors qq questions :

- est-ce que mettre ce texte : "data:image/x-icon;base64,AA<snip />A="

dans l'attribut src d'une image marche pour tout navigateur ?



Excellente question, je me pose la même...

Concernant le caractère standard des URI data:, c'est normalisé dans la
RFC 2397 :
http://www.ietf.org/rfc/rfc2397.txt?number#97

Wikipedia a un article assez intéressant sur le sujet :
http://en.wikipedia.org/wiki/Data:_URL
...Qui indique notemment que Firefox n'est pas le seul à supporter ces URI !

- dois-je réduire la taille de l'image à 16x16 ?



width="16" height="16" fonctionne très bien :)

Pour info, l'extension Bookmarks Synchronizer pour Firefox permet de
charger son fichier XBEL sur un serveur (ftp ou put http), en modifiant
éventuellement l'entête. La page de démo de l'auteur n'a plus l'air
d'être active, voici une honteuse repompe de son travail (sa feuille
XSL-T s'entend) pour donner une idée :
http://pgoiffon.free.fr/liens/xbel.xml
Avatar
Florian Sinatra
J'ajoute aux liens amenés plus haut la page :
<http://lwest.free.fr/doc/php/smp/?docidÚta_url>

En PHP, pour créer les DATA à partir d'un fichier, je fais :

# @param string $filename : nom du fichier
# @param string $mime : type mime du fichier
function UrlData($filename,$mime) {
$fmtImgData = 'data:%s;%s,%s';
$linesz = @filesize( $filename )+1;
$fp = @fopen( $filename, 'r' );

$data = sprintf(
$fmtImgData,
$mime,
"base64",
chunk_split( base64_encode( @fread( $fp, $linesz) ) )
);

@fclose( $fp );
return $data;
}

et réciproquement :
function UrlData_reverse($data) {
$data = str_replace(" ","",substr($data,1+strpos($data,",")));
return base64_decode($data);
}

:-)
Avatar
pere.noel
Florian Sinatra wrote:

J'ajoute aux liens amenés plus haut la page :
<http://lwest.free.fr/doc/php/smp/?docidÚta_url>




ok, merci, c'est donc "tout bon" ;-)

En PHP, pour créer les DATA à partir d'un fichier, je fais :



<snip />> et réciproquement :
function UrlData_reverse($data) {
$data = str_replace(" ","",substr($data,1+strpos($data,",")));
return base64_decode($data);
}



ok, je peux faire ))
--
une bévue
Avatar
pere.noel
Pierre Goiffon wrote:

Pour Firefox, c'est un format XML, du XBEL, donc vous devriez facilement
utiliser des outils XML



ah bon, il y a un autre fichier que bookmarls.html ???

je viens de regarder avec ff 1.5 pas de fichier xbel...

Dans Internet Explorer, n'en parlons pas, mais je suppose que le format
est tout aussi différent dans Opera et Safari ?



safari c'est une plist du genre xml à la Apple, un extrait (c'est
verbose) :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Children</key>
<array>
<dict>
<key>Children</key>
<array>
<dict>
<key>Children</key>
<array>
<dict>

<key>URIDictionary</key>
<dict>

<key></key>

<string>http://www.lejeudi.lu/</string>

<key>title</key>

<string>Le Jeudi </string>
</dict>

<key>URLString</key>

<string>http://www.lejeudi.lu/</string>

<key>WebBookmarkType</key>

<string>WebBookmarkTypeLeaf</string>

<key>WebBookmarkUUID</key>

<string>541B740C-2787-4D72-A39A-0975E92C65D7</string>
</dict>
"

là on a UN signet ;-)


> alors qq questions :
>
> - est-ce que mettre ce texte : "data:image/x-icon;base64,AA<snip />A="
>
> dans l'attribut src d'une image marche pour tout navigateur ?

Excellente question, je me pose la même...

Concernant le caractère standard des URI data:, c'est normalisé dans la
RFC 2397 :
http://www.ietf.org/rfc/rfc2397.txt?number#97

Wikipedia a un article assez intéressant sur le sujet :
http://en.wikipedia.org/wiki/Data:_URL
...Qui indique notemment que Firefox n'est pas le seul à supporter ces URI !



ok, je compterai là-dessus et tant pis les navs qui n'en veulent pas...


> - dois-je réduire la taille de l'image à 16x16 ?

width="16" height="16" fonctionne très bien :)



ouais bonne idée mais safari n'en veut pas quand m^me c'est sans doute
qqc d'autre


Pour info, l'extension Bookmarks Synchronizer pour Firefox permet de
charger son fichier XBEL sur un serveur (ftp ou put http), en modifiant
éventuellement l'entête. La page de démo de l'auteur n'a plus l'air
d'être active, voici une honteuse repompe de son travail (sa feuille
XSL-T s'entend) pour donner une idée :
http://pgoiffon.free.fr/liens/xbel.xml



elle n'est pas compatible avec ff 1.5, mais il y en a une autre qui
traine qqpart, je n'ai plus l'url...
--
une bévue
1 2