You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-users@xmlgraphics.apache.org by Steven Dow <sd...@instepsoftware.com> on 2002/03/05 22:39:28 UTC

Native Image format

Can someone tell me how a jpg is translated to the format below?  The documentation I've found does not give much detail about this method of embedding images.  If you paste this simple example into a new SVG file you will see the result is an image.  What is the translation algorithm?  Any help is much appreciated...

Steven

<svg width="4.0in" height=" 4.0in" viewBox="0 0 200 200">
<image width="60" height="60" xlink:href="data:image/jpg;base64,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
mZGGFE6uYxYv/9k=" transform="matrix(1 0 0 1 30 80)"/>
</svg>

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Native Image format

Posted by Thomas E Deweese <th...@kodak.com>.
>>>>> "SD" == Steven Dow <sd...@instepsoftware.com> writes:

SD> Can someone tell me how a jpg is translated to the format below?
SD> The documentation I've found does not give much detail about this
SD> method of embedding images.  If you paste this simple example into
SD> a new SVG file you will see the result is an image.  What is the
SD> translation algorithm?  Any help is much appreciated...

    Everything after the 'base64,' is the JPEG file converted using a
base64 encoding (this converts binary data to a 'text' format that has
the nice property of not using any reserved chars for URLS etc).

    The canonical description of the base64 encoding can be found at:
http://www.ietf.org/rfc/rfc2045.txt

    The batik toolkit includes Streams that can do this for you:

org.apache.batik.util.Base64EncoderStream (output stream)
org.apache.batik.util.Base64DecoderStream (input stream)

    Hope this helps...

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Re: Native Image format

Posted by Guillaume Laforge <gl...@reflexe.fr>.
Hello Steven,

There are a lot of implementations of the Base64 algorithm, you can also use the following classes to convert your image files in order to embed them directly in you SVG content :

org.apache.xerces.utils.Base64
org.apache.catalina.util.Base64

Guillaume

  ----- Original Message ----- 
  From: Steven Dow 
  To: Batik Users 
  Sent: Tuesday, March 05, 2002 10:39 PM
  Subject: Native Image format



  Can someone tell me how a jpg is translated to the format below?  The documentation I've found does not give much detail about this method of embedding images.  If you paste this simple example into a new SVG file you will see the result is an image.  What is the translation algorithm?  Any help is much appreciated...

  Steven


Re: Native Image format

Posted by Rhazes Spell <ru...@duke.edu>.
On Tue, 5 Mar 2002, Steven Dow wrote:

>
> Can someone tell me how a jpg is translated to the format below?  The documentation I've found does not give much detail about this method of embedding images.  If you paste this simple example into a new SVG file you will see the result is an image.  What is the translation algorithm?  Any help is much appreciated...
>
> Steven
>
> <svg width="4.0in" height=" 4.0in" viewBox="0 0 200 200">
> <image width="60" height="60" xlink:href="data:image/jpg;base64,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
> mZGGFE6uYxYv/9k=" transform="matrix(1 0 0 1 30 80)"/>
> </svg>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> For additional commands, e-mail: batik-users-help@xml.apache.org
>
>
>

**************************************
Duke University
Department of Biomedical Engineering
Duke University Medical Center,
 Center for Genome Technology

rhazes.spell@duke.edu
919.684.2720
***************************************


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org