Hi Lars. Lars Eirik Rønning: > I have an existing svg document where some of the nodes act as placeholders. > Basically these placeholders will be replaces with base64 encoded images. > > 1:Are there any convenience methods for adding images to an svg document or > do i have to manually base64encode the stream and add all attributes such as > widht and height? > I have already added an element using the SVGConstant for Images, but to mee > this still looks like its more or less the same as using any other > xmldocument.
If you have, say, a BufferedImage and you want to convert it into a data: URI, you can do the following: BufferedImage img = …; ByteArrayOutputStream bytes = new ByteArrayOutputStream(); Base64EncoderStream b64 = new Base64EncoderStream(bytes); PNGImageEncoder enc = new PNGImageEncoder(b64, null); enc.encode(img); b64.close(); String uri = "data:image/png;base64," + bytes.toString(); Then you can construct a new <image> element and set its xlink:href="" attribute to that URI. This is essentially what the SVGGraphics2D class does when it gets a drawImage() call. > If there are any guides or tutorials to using dom for handling images i am > very happy to receive some pointers.. > 2:One of my concerns is that i probably have to add the transformation > matrix myself. I was hoping that there could be some convenience methods > which would help me on my way for doing these types of operations. > Is the transformation matrix necessary in order for the image (or any > element) to be visible in a svg document? I’m not quite sure what you want to achieve, so I don’t know whether you need to set a transform='" on the <image> elements or not. -- Cameron McCormack ≝ http://mcc.id.au/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
