Egy érdekes problémával találtam szemben magam. Egy program xml file-ba készít hibalistát. Ebből készül egy HTML riport (persze XSLT-vel), amivel a felhasználó azt csinál, amit akar. Azt kérték, hogy tegyek bele képeket. Nem is lenne probléma, ha lenne mögötte egy Apache szerver, de ez egyetlen file lenne, plusz a képek. Az a kérdés merült fel bennem, hogy meg lehetne az egészet úgy csinálni, hogy a HTML oldalba bele legyenek ágyazva a képek is, azaz ne kelljen a képeket külön kitenni a HTML file mellé. Ennek néztem kicsit utána.
Némi keresgélés után rátaláltam a jó megoldásra. Referenciaként az alábbit kell megadni: "data:formátum;kódolás,adathalmaz". Legyen mondjuk png formátumú a kép file és legyen base64-ben kódolva. Ekkor így adhatunk meg egy linket (az adat java részét '...'-tal helyettesítettem):
<a href="data:image/png;base64,iVBORw...==">
<img src="data:image/png;base64,iVBORw...g==" width="70" height="38" alt="RIFE Logo" border="0" /></a>
Ekkor egyrészt megjelenik a kép file a megadott 70x38-as méretben. Ha ráklikkelünk, akkor megjelenik a kép normál méretben és más nem lesz látható az oldalon.
Hogyan lehet a png-ből egyből html file-t csinálni? Itt most a linket kihagyom, mert nekem csak a képre van szükségem. Tegyük fel, hogy van egy krix.png file és szeretnénk egy krix.html oldalt csinálni belőle. Cygwin és Linux alatt az alábbi parancssorral lehet ezt előállítani:
echo -e "<html>\n<body>\n<img src=\"data:image/png;base64,"$(base64 --wrap=0 krix.png)"\"/>\n</body>\n</html>" >krix.html
Szép! Nem? De!
Ágyazzunk be minden nap!
+jegyzések