I just needed to set the created element namespace to
the svg namespace.

What confuses me it's that squiggle renders the
document properly while the  transcoder doesn't if I
don't set the namespace.

--- Gregory <[EMAIL PROTECTED]> wrote:

> Hi,
> 
> I created a very simple SVG DOM (see code above). 
> 
> If I serialize the DOM to a file and view the file
> with squiggle its looks fine.
> 
> If I transcode the DOM to a png, tiff or jpeg file,
> the result has the right dimensions but it's blank. 
> 
> Actually only a transparent layer with the
> PNGTranscoder, a white layer with the JPGTranscoder
> and a black layer with the TIFFTranscoder. But in
> any
> case I never get the actual drawing.
> 
> If I build the DOM from an URI instead of from
> scratch, I get a correct result.
>  
> What did I missed?
> 
> --- java code ---
> public static void main(String[] args) throws
> Exception
> {
>   final DOMImplementation impl =
> SVGDOMImplementation.getDOMImplementation();
>   final String svgNS =
> SVGDOMImplementation.SVG_NAMESPACE_URI;
>   final Document doc = impl.createDocument(svgNS,
> "svg", null);
>   final Element root = doc.getDocumentElement();
>   root.setAttribute("width", "504");
>   root.setAttribute("height", "480");
>   final Element rect = doc.createElement("rect");
>   rect.setAttribute("x", "0");
>   rect.setAttribute("y", "0");
>   rect.setAttribute("width", "504");
>   rect.setAttribute("height", "480");
>   rect.setAttribute("fill", "yellow");
>   root.appendChild(rect);
>   
>   // Save the dom to a file for verification
>   final Transformer tr =
> TransformerFactory.newInstance().newTransformer();
>   tr.transform(new DOMSource(doc), new
> StreamResult("/tmp/out/2.svg"));
>   
>   // The actual rasterization
>   final Transcoder trc = new PNGTranscoder();
>   final int screenDpi = 72;
>   trc.addTranscodingHint(ImageTranscoder.KEY_WIDTH,
> new Float(504));
>  
>
trc.addTranscodingHint(ImageTranscoder.KEY_PIXEL_UNIT_TO_MILLIMETER,
> new Float(25.4f / screenDpi));
>   final TranscoderInput in = new
> TranscoderInput(doc);
>   final TranscoderOutput out = new
> TranscoderOutput(new BufferedOutputStream(new
> FileOutputStream("/tmp/out/out.png")));
>   trc.transcode(in, out);
>   out.getOutputStream().flush();
>   out.getOutputStream().close();
>   System.out.println("done");
> }
> 
> 
> 
>               
> ____________________________________________________
> Start your day with Yahoo! - make it your home page
> http://www.yahoo.com/r/hs
>  
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to