je sais qu'il exisste une méthode pour placer dans du html, une image
sous forme de data par exemple, comme ceci :
<A HREF="http://www.framasoft.net/mot17.html" ADD_DATE="1141644991"
LAST_VISIT="1143043625"
ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJS
AAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTDBMSJg9G4NuKAAAAB3RJTUUH1AEXEhYx5zFw/AAA
AAlwSFlzAAAK8AAACvABQqw0mAAAADBQTFRFQkJCUlJSa2trc3NzjIyMlJSUnJycpaWltbW1
xsb/zs7O1tbW5+fn7+/v////////SxIgfQAAAE5JREFUeNpjmAkFDPPegcFLhnlvVwHBPSDj
TQBLWuI5IOPdA653j99BGe+gjDfrIAyOZXkQBksSlMH1Kg9dMZRxAcp4Y2zsBxGBWgpzBgCx
AlvUDJQxwQAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1"
ID="rdf:#$2xvhM3">Mac OS X - Logiciels Libres - Framasoft</A>
mais au lieu de mettre ça dans un a href, je souhaite dans une image.
ce que je retrouve par programme est du style :
4d4d002a 00002774 ccaa64cc aa64cfad 67d0ae68
comment puis connaître le codage employé et/ou le format d'image (pour
info ca vient des images du Carnet d'adresse sur MAc OS X, j'utilise
simplement imageData sur une ABPerson)
def get_format( fi ) return IO.popen( "/usr/bin/sips -g format "#{fi}"" ).readlines[ 1 ].chomp.gsub( /s+format:s+([a-zA-Z]*)$/, '1' ) end def base64_encode( fi ) lines = "" IO.popen( "/opt/local/bin/base64 -e "#{fi}"" ).readlines.each { | x | lines << x } return lines.chomp end
def data_image( ab_img_dir ) photos = [ ] Dir.glob( "#{ab_img_dir}/*" ).each do | fi | fbn = File.basename( fi ) if ( File.ftype( fi ) === "file" ) && !( /.*.[a-zA-Z]{3,4}$/ == fbn ) photos << "data:image/#{get_format( fi )};base64,#{base64_encode( fi )}" end end return photos end
html_fi = "/Users/yt/work/RubyCocoa/AB2Html/image_data_new.html" html = "<html><body>" data_image( "/Users/yt/Library/Application Support/AddressBook/Images" ).each do | data_img | html << "<img src='#{data_img}' /><br />" end html << "</body></html>"
File.open( html_fi, File::WRONLY|File::TRUNC|File::CREAT, 0666 ) { | f | f.puts html }
def get_format( fi )
return IO.popen( "/usr/bin/sips -g format "#{fi}"" ).readlines[ 1
].chomp.gsub( /s+format:s+([a-zA-Z]*)$/, '1' )
end
def base64_encode( fi )
lines = ""
IO.popen( "/opt/local/bin/base64 -e "#{fi}"" ).readlines.each { | x
| lines << x }
return lines.chomp
end
def data_image( ab_img_dir )
photos = [ ]
Dir.glob( "#{ab_img_dir}/*" ).each do | fi |
fbn = File.basename( fi )
if ( File.ftype( fi ) === "file" ) && !( /.*.[a-zA-Z]{3,4}$/ == fbn )
photos << "data:image/#{get_format( fi )};base64,#{base64_encode(
fi )}"
end
end
return photos
end
html_fi = "/Users/yt/work/RubyCocoa/AB2Html/image_data_new.html"
html = "<html><body>"
data_image( "/Users/yt/Library/Application Support/AddressBook/Images"
).each do | data_img |
html << "<img src='#{data_img}' /><br />"
end
html << "</body></html>"
File.open( html_fi, File::WRONLY|File::TRUNC|File::CREAT, 0666 ) { | f |
f.puts html }
def get_format( fi ) return IO.popen( "/usr/bin/sips -g format "#{fi}"" ).readlines[ 1 ].chomp.gsub( /s+format:s+([a-zA-Z]*)$/, '1' ) end def base64_encode( fi ) lines = "" IO.popen( "/opt/local/bin/base64 -e "#{fi}"" ).readlines.each { | x | lines << x } return lines.chomp end
def data_image( ab_img_dir ) photos = [ ] Dir.glob( "#{ab_img_dir}/*" ).each do | fi | fbn = File.basename( fi ) if ( File.ftype( fi ) === "file" ) && !( /.*.[a-zA-Z]{3,4}$/ == fbn ) photos << "data:image/#{get_format( fi )};base64,#{base64_encode( fi )}" end end return photos end
html_fi = "/Users/yt/work/RubyCocoa/AB2Html/image_data_new.html" html = "<html><body>" data_image( "/Users/yt/Library/Application Support/AddressBook/Images" ).each do | data_img | html << "<img src='#{data_img}' /><br />" end html << "</body></html>"
File.open( html_fi, File::WRONLY|File::TRUNC|File::CREAT, 0666 ) { | f | f.puts html }
Oui, peut-être qu'un petit manuel pourrait aider ;-)
-- sm
Pierre Goiffon
SAM wrote:
je sais qu'il exisste une méthode pour placer dans du html, une image sous forme de data par exemple, comme ceci : <A HREF="http://www.framasoft.net/mot17.html" ADD_DATE="1141644991"
(...)
ID="rdf:#$2xvhM3">Mac OS X - Logiciels Libres - Framasoft</A>
Je crois comprendre (mais je peux me tromper ?) que le but serait une récupération (automatique) via un shell (Ruby ?) de tout un tas de choses tournant sur Mac (et +/- livrées avec les machines) pour les faire s'afficher dans Safari.
Il semblerait qu'Yvon veuille s'attaquer à la récupération des données stockées par le Carnet d'Adresses (dont des images).
Woaa, j'applaudis milles fois Stéphane tes dons de déduction ! J'étais loin de me douter de tout ça :D
SAM wrote:
je sais qu'il exisste une méthode pour placer dans du html, une image
sous forme de data par exemple, comme ceci :
<A HREF="http://www.framasoft.net/mot17.html" ADD_DATE="1141644991"
(...)
ID="rdf:#$2xvhM3">Mac OS X - Logiciels Libres - Framasoft</A>
Je crois comprendre (mais je peux me tromper ?) que le but serait une
récupération (automatique) via un shell (Ruby ?) de tout un tas de
choses tournant sur Mac (et +/- livrées avec les machines) pour les
faire s'afficher dans Safari.
Il semblerait qu'Yvon veuille s'attaquer à la récupération des données
stockées par le Carnet d'Adresses (dont des images).
Woaa, j'applaudis milles fois Stéphane tes dons de déduction ! J'étais
loin de me douter de tout ça :D
je sais qu'il exisste une méthode pour placer dans du html, une image sous forme de data par exemple, comme ceci : <A HREF="http://www.framasoft.net/mot17.html" ADD_DATE="1141644991"
(...)
ID="rdf:#$2xvhM3">Mac OS X - Logiciels Libres - Framasoft</A>
Je crois comprendre (mais je peux me tromper ?) que le but serait une récupération (automatique) via un shell (Ruby ?) de tout un tas de choses tournant sur Mac (et +/- livrées avec les machines) pour les faire s'afficher dans Safari.
Il semblerait qu'Yvon veuille s'attaquer à la récupération des données stockées par le Carnet d'Adresses (dont des images).
Woaa, j'applaudis milles fois Stéphane tes dons de déduction ! J'étais loin de me douter de tout ça :D
unbewusst.sein
SAM wrote:
Oui, peut-être qu'un petit manuel pourrait aider ;-)
j'ai testé :
require "base64"
def get_format( fi ) return IO.popen( "/usr/bin/sips -g format "#{fi}"" ).readlines[ 1 ].chomp.gsub( /s+format:s+([a-zA-Z]*)$/, '1' ) end def base64_encode_contents( h, label, fi ) lines = "" IO.foreach( "#{fi}" ) { | line | lines << line } h[ label ] = "data:image/#{get_format( fi )};base64,#{Base64.encode64( lines.chomp )}" end def data_image( h, ab_img_dir ) Dir.glob( "#{ab_img_dir}/*" ).each do | fi | fbn = File.basename( fi ) if ( File.ftype( fi ) === "file" ) && !( /.*.[a-zA-Z]{3,4}$/ == fbn ) base64_encode_contents( h, fbn, fi ) end end end
html_fi = "/Users/yt/work/RubyCocoa/AB2Html/map/image_data.html" html = "<html><body>" data_imgs_h.each do | uid, data_img | html << "<img src='#{data_img}' />#{uid}<br />" end html << "</body></html>"
File.open( html_fi, File::WRONLY|File::TRUNC|File::CREAT, 0666 ) { | f | f.puts html }
`open "#{html_fi}"`
un petit essai : <http://thoraval.yvon.free.fr/AB2Html/image_data.html>
le fichier (596 k) est + lourd que l'ensemble des images en jpeg...
mais le fichier comporte des images en tif et les images ne sont pas "scalées" aux dimesions utilisées dans le html :
img.floatleft { float: left; margin: 20px 0px 10px 20px; padding: 2px; } img.reduced { width: 24px; height: 24px; border: 0px; margin-right: 15px; vertical-align: middle; } j'avoue ne + savoir ce qui donne les dimensions de l'image ("floatleft") non réduite...
capture écran de mon carnet d'adresse en html : http://thoraval.yvon.free.fr/AB2Html/AB2Html_closed.jpg http://thoraval.yvon.free.fr/AB2Html/AB2Html_open.jpg
pré-visualisation des thèmes sur un exemple "bison" : http://thoraval.yvon.free.fr/AB2Html/themes/Gradiant%20Green/index.html
je ne sais si les noms de dossier accentués "passent" sur free : problème avec le thème "Défaut"... -- Une Bévue
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
Oui, peut-être qu'un petit manuel pourrait aider ;-)
j'ai testé :
require "base64"
def get_format( fi )
return IO.popen( "/usr/bin/sips -g format "#{fi}"" ).readlines[ 1
].chomp.gsub( /s+format:s+([a-zA-Z]*)$/, '1' )
end
def base64_encode_contents( h, label, fi )
lines = ""
IO.foreach( "#{fi}" ) { | line | lines << line }
h[ label ] = "data:image/#{get_format( fi )};base64,#{Base64.encode64(
lines.chomp )}"
end
def data_image( h, ab_img_dir )
Dir.glob( "#{ab_img_dir}/*" ).each do | fi |
fbn = File.basename( fi )
if ( File.ftype( fi ) === "file" ) && !( /.*.[a-zA-Z]{3,4}$/ == fbn )
base64_encode_contents( h, fbn, fi )
end
end
end
html_fi = "/Users/yt/work/RubyCocoa/AB2Html/map/image_data.html"
html = "<html><body>"
data_imgs_h.each do | uid, data_img |
html << "<img src='#{data_img}' />#{uid}<br />"
end
html << "</body></html>"
File.open( html_fi, File::WRONLY|File::TRUNC|File::CREAT, 0666 ) { | f |
f.puts html }
`open "#{html_fi}"`
un petit essai : <http://thoraval.yvon.free.fr/AB2Html/image_data.html>
le fichier (596 k) est + lourd que l'ensemble des images en jpeg...
mais le fichier comporte des images en tif et les images ne sont pas
"scalées" aux dimesions utilisées dans le html :
img.floatleft {
float: left;
margin: 20px 0px 10px 20px;
padding: 2px;
}
img.reduced {
width: 24px;
height: 24px;
border: 0px;
margin-right: 15px;
vertical-align: middle;
}
j'avoue ne + savoir ce qui donne les dimensions de l'image ("floatleft")
non réduite...
capture écran de mon carnet d'adresse en html :
http://thoraval.yvon.free.fr/AB2Html/AB2Html_closed.jpg
http://thoraval.yvon.free.fr/AB2Html/AB2Html_open.jpg
pré-visualisation des thèmes sur un exemple "bison" :
http://thoraval.yvon.free.fr/AB2Html/themes/Gradiant%20Green/index.html
je ne sais si les noms de dossier accentués "passent" sur free :
problème avec le thème "Défaut"...
--
Une Bévue
html_fi = "/Users/yt/work/RubyCocoa/AB2Html/map/image_data.html" html = "<html><body>" data_imgs_h.each do | uid, data_img | html << "<img src='#{data_img}' />#{uid}<br />" end html << "</body></html>"
File.open( html_fi, File::WRONLY|File::TRUNC|File::CREAT, 0666 ) { | f | f.puts html }
`open "#{html_fi}"`
un petit essai : <http://thoraval.yvon.free.fr/AB2Html/image_data.html>
le fichier (596 k) est + lourd que l'ensemble des images en jpeg...
mais le fichier comporte des images en tif et les images ne sont pas "scalées" aux dimesions utilisées dans le html :
img.floatleft { float: left; margin: 20px 0px 10px 20px; padding: 2px; } img.reduced { width: 24px; height: 24px; border: 0px; margin-right: 15px; vertical-align: middle; } j'avoue ne + savoir ce qui donne les dimensions de l'image ("floatleft") non réduite...
capture écran de mon carnet d'adresse en html : http://thoraval.yvon.free.fr/AB2Html/AB2Html_closed.jpg http://thoraval.yvon.free.fr/AB2Html/AB2Html_open.jpg
pré-visualisation des thèmes sur un exemple "bison" : http://thoraval.yvon.free.fr/AB2Html/themes/Gradiant%20Green/index.html
je ne sais si les noms de dossier accentués "passent" sur free : problème avec le thème "Défaut"... -- Une Bévue
SAM
Une Bévue a écrit :
un petit essai : <http://thoraval.yvon.free.fr/AB2Html/image_data.html>
le fichier (596 k) est + lourd que l'ensemble des images en jpeg...
Je n'ai d'affiché que 2 photos dans Fx, ça a l'air d'aller dans Safari 2.03.
Ha! non! y a pas ma trombine ! ;-)
mais le fichier comporte des images en tif et les images ne sont pas "scalées" aux dimesions utilisées dans le html :
Oui, en effet, il n'y a pas de css dans l'exemple :-)
img.floatleft { float: left; margin: 20px 0px 10px 20px; padding: 2px; } img.reduced { width: 24px; height: 24px; border: 0px; margin-right: 15px; vertical-align: middle; } j'avoue ne + savoir ce qui donne les dimensions de l'image ("floatleft") non réduite...
c'est là où 'width' et 'height' sont précisés je présume ?
Si tu veux absolument utiliser float:left; mets ça dans ta page de démo : <style type="text/css"> img { float: left; margin: 20px 0px 10px 20px; padding: 2px; width: 60px; border: 0px; margin-right: 15px; vertical-align: middle; } br { clear: left; } </style>
pré-visualisation des thèmes sur un exemple "bison" : http://thoraval.yvon.free.fr/AB2Html/themes/Gradiant%20Green/index.html
je ne sais si les noms de dossier accentués "passent" sur free : problème avec le thème "Défaut"...
non ça passe pô.
-- sm
Une Bévue a écrit :
un petit essai : <http://thoraval.yvon.free.fr/AB2Html/image_data.html>
le fichier (596 k) est + lourd que l'ensemble des images en jpeg...
Je n'ai d'affiché que 2 photos dans Fx,
ça a l'air d'aller dans Safari 2.03.
Ha! non!
y a pas ma trombine ! ;-)
mais le fichier comporte des images en tif et les images ne sont pas
"scalées" aux dimesions utilisées dans le html :
Oui, en effet, il n'y a pas de css dans l'exemple :-)
img.floatleft {
float: left;
margin: 20px 0px 10px 20px;
padding: 2px;
}
img.reduced {
width: 24px;
height: 24px;
border: 0px;
margin-right: 15px;
vertical-align: middle;
}
j'avoue ne + savoir ce qui donne les dimensions de l'image ("floatleft")
non réduite...
c'est là où 'width' et 'height' sont précisés je présume ?
Si tu veux absolument utiliser float:left;
mets ça dans ta page de démo :
<style type="text/css">
img {
float: left;
margin: 20px 0px 10px 20px;
padding: 2px;
width: 60px;
border: 0px;
margin-right: 15px;
vertical-align: middle;
}
br { clear: left; }
</style>
un petit essai : <http://thoraval.yvon.free.fr/AB2Html/image_data.html>
le fichier (596 k) est + lourd que l'ensemble des images en jpeg...
Je n'ai d'affiché que 2 photos dans Fx, ça a l'air d'aller dans Safari 2.03.
Ha! non! y a pas ma trombine ! ;-)
mais le fichier comporte des images en tif et les images ne sont pas "scalées" aux dimesions utilisées dans le html :
Oui, en effet, il n'y a pas de css dans l'exemple :-)
img.floatleft { float: left; margin: 20px 0px 10px 20px; padding: 2px; } img.reduced { width: 24px; height: 24px; border: 0px; margin-right: 15px; vertical-align: middle; } j'avoue ne + savoir ce qui donne les dimensions de l'image ("floatleft") non réduite...
c'est là où 'width' et 'height' sont précisés je présume ?
Si tu veux absolument utiliser float:left; mets ça dans ta page de démo : <style type="text/css"> img { float: left; margin: 20px 0px 10px 20px; padding: 2px; width: 60px; border: 0px; margin-right: 15px; vertical-align: middle; } br { clear: left; } </style>