You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlgraphics.apache.org by bu...@apache.org on 2012/12/03 04:49:38 UTC
svn commit: r840429 [5/5] - in /websites/staging/xmlgraphics/trunk/content:
./ batik/dev/ batik/tools/ batik/using/ batik/using/scripting/
Modified: websites/staging/xmlgraphics/trunk/content/batik/using/transcoder.html
==============================================================================
--- websites/staging/xmlgraphics/trunk/content/batik/using/transcoder.html (original)
+++ websites/staging/xmlgraphics/trunk/content/batik/using/transcoder.html Mon Dec 3 03:49:37 2012
@@ -185,42 +185,45 @@ $(document).ready(function () {
<h2 id="how-to-use-the-image-transcoder-api-wzxhzdk5wzxhzdk6">How to use the image transcoder API <a id="howtousetranscoderAPI"></a></h2>
<p>The <code>org.apache.batik.transcoder.image</code> package provides an easy way to transcode an SVG document to a raster image such as JPEG, PNG or TIFF. Additional raster image formats can be added by subclassing the <code>ImageTranscoder</code> class and implementing the <code>writeImage</code> method. Although, in next sections, the examples will use the JPEG transcoder, the PNG transcoder works the same way.</p>
<h3 id="creating-an-image-wzxhzdk7wzxhzdk8">Creating an image <a id="createImage"></a></h3>
-<p>The following example, using the <code>JPEGTranscoder</code> , shows how to transform an SVG document to a JPEG image.
-import java.io.*;</p>
-<p>import org.apache.batik.transcoder.image.JPEGTranscoder;
-import org.apache.batik.transcoder.TranscoderInput;
-import org.apache.batik.transcoder.TranscoderOutput;</p>
-<p>public class SaveAsJPEG {</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
-
- <span class="sr">//</span> <span class="n">Create</span> <span class="n">a</span> <span class="n">JPEG</span> <span class="n">transcoder</span>
- <span class="n">JPEGTranscoder</span> <span class="n">t</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JPEGTranscoder</span><span class="p">();</span>
-
- <span class="sr">//</span> <span class="n">Set</span> <span class="n">the</span> <span class="n">transcoding</span> <span class="n">hints</span><span class="o">.</span>
- <span class="n">t</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_QUALITY</span><span class="p">,</span>
- <span class="k">new</span> <span class="n">Float</span><span class="p">(</span><span class="mf">.8</span><span class="p">));</span>
-
- <span class="sr">//</span> <span class="n">Create</span> <span class="n">the</span> <span class="n">transcoder</span> <span class="n">input</span><span class="o">.</span>
- <span class="n">String</span> <span class="n">svgURI</span> <span class="o">=</span> <span class="k">new</span> <span class="n">File</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">.</span><span class="n">toURL</span><span class="p">()</span><span class="o">.</span><span class="n">toString</span><span class="p">();</span>
- <span class="n">TranscoderInput</span> <span class="n">input</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderInput</span><span class="p">(</span><span class="n">svgURI</span><span class="p">);</span>
-
- <span class="sr">//</span> <span class="n">Create</span> <span class="n">the</span> <span class="n">transcoder</span> <span class="n">output</span><span class="o">.</span>
- <span class="n">OutputStream</span> <span class="n">ostream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FileOutputStream</span><span class="p">(</span><span class="s">"out.jpg"</span><span class="p">);</span>
- <span class="n">TranscoderOutput</span> <span class="n">output</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderOutput</span><span class="p">(</span><span class="n">ostream</span><span class="p">);</span>
-
- <span class="sr">//</span> <span class="n">Save</span> <span class="n">the</span> <span class="n">image</span><span class="o">.</span>
- <span class="n">t</span><span class="o">.</span><span class="n">transcode</span><span class="p">(</span><span class="n">input</span><span class="p">,</span> <span class="n">output</span><span class="p">);</span>
-
- <span class="sr">//</span> <span class="n">Flush</span> <span class="ow">and</span> <span class="nb">close</span> <span class="n">the</span> <span class="n">stream</span><span class="o">.</span>
- <span class="n">ostream</span><span class="o">.</span><span class="n">flush</span><span class="p">();</span>
- <span class="n">ostream</span><span class="o">.</span><span class="nb">close</span><span class="p">();</span>
- <span class="n">System</span><span class="o">.</span><span class="nb">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
+<p>The following example, using the <code>JPEGTranscoder</code> , shows how to transform an SVG document to a JPEG image.</p>
+<div class="codehilite"><pre><span class="nb">import</span> <span class="n">java</span><span class="o">.</span><span class="n">io</span><span class="o">.*</span><span class="p">;</span>
+
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">batik</span><span class="o">.</span><span class="n">transcoder</span><span class="o">.</span><span class="n">image</span><span class="o">.</span><span class="n">JPEGTranscoder</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">batik</span><span class="o">.</span><span class="n">transcoder</span><span class="o">.</span><span class="n">TranscoderInput</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">batik</span><span class="o">.</span><span class="n">transcoder</span><span class="o">.</span><span class="n">TranscoderOutput</span><span class="p">;</span>
+
+<span class="n">public</span> <span class="n">class</span> <span class="n">SaveAsJPEG</span> <span class="p">{</span>
+
+ <span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
+
+ <span class="sr">//</span> <span class="n">Create</span> <span class="n">a</span> <span class="n">JPEG</span> <span class="n">transcoder</span>
+ <span class="n">JPEGTranscoder</span> <span class="n">t</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JPEGTranscoder</span><span class="p">();</span>
+
+ <span class="sr">//</span> <span class="n">Set</span> <span class="n">the</span> <span class="n">transcoding</span> <span class="n">hints</span><span class="o">.</span>
+ <span class="n">t</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_QUALITY</span><span class="p">,</span>
+ <span class="k">new</span> <span class="n">Float</span><span class="p">(</span><span class="mf">.8</span><span class="p">));</span>
+
+ <span class="sr">//</span> <span class="n">Create</span> <span class="n">the</span> <span class="n">transcoder</span> <span class="n">input</span><span class="o">.</span>
+ <span class="n">String</span> <span class="n">svgURI</span> <span class="o">=</span> <span class="k">new</span> <span class="n">File</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">.</span><span class="n">toURL</span><span class="p">()</span><span class="o">.</span><span class="n">toString</span><span class="p">();</span>
+ <span class="n">TranscoderInput</span> <span class="n">input</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderInput</span><span class="p">(</span><span class="n">svgURI</span><span class="p">);</span>
+
+ <span class="sr">//</span> <span class="n">Create</span> <span class="n">the</span> <span class="n">transcoder</span> <span class="n">output</span><span class="o">.</span>
+ <span class="n">OutputStream</span> <span class="n">ostream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FileOutputStream</span><span class="p">(</span><span class="s">"out.jpg"</span><span class="p">);</span>
+ <span class="n">TranscoderOutput</span> <span class="n">output</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderOutput</span><span class="p">(</span><span class="n">ostream</span><span class="p">);</span>
+
+ <span class="sr">//</span> <span class="n">Save</span> <span class="n">the</span> <span class="n">image</span><span class="o">.</span>
+ <span class="n">t</span><span class="o">.</span><span class="n">transcode</span><span class="p">(</span><span class="n">input</span><span class="p">,</span> <span class="n">output</span><span class="p">);</span>
+
+ <span class="sr">//</span> <span class="n">Flush</span> <span class="ow">and</span> <span class="nb">close</span> <span class="n">the</span> <span class="n">stream</span><span class="o">.</span>
+ <span class="n">ostream</span><span class="o">.</span><span class="n">flush</span><span class="p">();</span>
+ <span class="n">ostream</span><span class="o">.</span><span class="nb">close</span><span class="p">();</span>
+ <span class="n">System</span><span class="o">.</span><span class="nb">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
+ <span class="p">}</span>
<span class="p">}</span>
</pre></div>
-<p>}
-The code creates a <code>JPEGTranscoder</code> and sets a transcoding hint. The hint indicates the encoding quality. Then, an input and an output are created. The input is created using the first command line argument, which should be a URI. The output is a byte stream for a file called <code>out.jpg</code> . Finally, the <code>transcode</code> method is invoked and the byte stream is closed.</p>
+<p>The code creates a <code>JPEGTranscoder</code> and sets a transcoding hint. The hint indicates the encoding quality. Then, an input and an output are created. The input is created using the first command line argument, which should be a URI. The output is a byte stream for a file called <code>out.jpg</code> . Finally, the <code>transcode</code> method is invoked and the byte stream is closed.</p>
<p>Although not shown above, the program might have specified additional hints to indicate a user stylesheet, the preferred language of the document or the background color.</p>
<p>To try this program:</p>
<ol>
@@ -243,61 +246,64 @@ java SaveAsJPEG filename.svg</p>
t.addTranscodingHint(JPEGTranscoder.KEY_WIDTH, new Float(100));
The transcoder will have the same behavior if you specify the <code>KEY_HEIGHT</code> without initializing the <code>KEY_WIDTH</code> . In all cases (even if both keys are provided), the transcoder will preserve the apsect ratio of the SVG document.</p>
<h3 id="selecting-an-area-of-interest-wzxhzdk11wzxhzdk12">Selecting an area of interest <a id="selectAreaOfIntrest"></a></h3>
-<p>The image transcoder lets you specify an area of interest (that is, a part of the SVG document). The key <code>KEY_AOI</code> allows you to select the region of the SVG document to render. The value of this key must be a <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Rectangle.html">java.awt.Rectangle</a> specified in pixels, using the coordinate space of the SVG document. The following example shows how you can split an SVG document into 4 tiles.
-import java.io.<em>;
-import java.awt.</em>;</p>
-<p>import org.apache.batik.transcoder.image.JPEGTranscoder;
-import org.apache.batik.transcoder.TranscoderInput;
-import org.apache.batik.transcoder.TranscoderOutput;</p>
-<p>public class SaveAsJPEGTiles {</p>
-<div class="codehilite"><pre><span class="n">JPEGTranscoder</span> <span class="n">trans</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JPEGTranscoder</span><span class="p">();</span>
-
-<span class="n">public</span> <span class="n">SaveAsJPEGTiles</span><span class="p">()</span> <span class="p">{</span>
- <span class="n">trans</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_QUALITY</span><span class="p">,</span>
- <span class="k">new</span> <span class="n">Float</span><span class="p">(</span><span class="mf">.8</span><span class="p">));</span>
-<span class="p">}</span>
-
-<span class="n">public</span> <span class="n">void</span> <span class="n">tile</span><span class="p">(</span><span class="n">String</span> <span class="n">inputFilename</span><span class="p">,</span>
- <span class="n">String</span> <span class="n">outputFilename</span><span class="p">,</span>
- <span class="n">Rectangle</span> <span class="n">aoi</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
- <span class="sr">//</span> <span class="n">Set</span> <span class="n">hints</span> <span class="n">to</span> <span class="n">indicate</span> <span class="n">the</span> <span class="n">dimensions</span> <span class="n">of</span> <span class="n">the</span> <span class="n">output</span> <span class="n">image</span>
- <span class="sr">//</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">input</span> <span class="n">area</span> <span class="n">of</span> <span class="n">interest</span><span class="o">.</span>
- <span class="n">trans</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_WIDTH</span><span class="p">,</span>
- <span class="k">new</span> <span class="n">Float</span><span class="p">(</span><span class="n">aoi</span><span class="o">.</span><span class="n">width</span><span class="p">));</span><span class="n">trans</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_HEIGHT</span><span class="p">,</span>
- <span class="k">new</span> <span class="n">Float</span><span class="p">(</span><span class="n">aoi</span><span class="o">.</span><span class="n">height</span><span class="p">));</span><span class="n">trans</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_AOI</span><span class="p">,</span> <span class="n">aoi</span><span class="p">);</span>
-
- <span class="sr">//</span> <span class="n">Transcode</span> <span class="n">the</span> <span class="n">file</span><span class="o">.</span>
- <span class="n">String</span> <span class="n">svgURI</span> <span class="o">=</span> <span class="k">new</span> <span class="n">File</span><span class="p">(</span><span class="n">inputFilename</span><span class="p">)</span><span class="o">.</span><span class="n">toURL</span><span class="p">()</span><span class="o">.</span><span class="n">toString</span><span class="p">();</span>
- <span class="n">TranscoderInput</span> <span class="n">input</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderInput</span><span class="p">(</span><span class="n">svgURI</span><span class="p">);</span>
- <span class="n">OutputStream</span> <span class="n">ostream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FileOutputStream</span><span class="p">(</span><span class="n">outputFilename</span><span class="p">);</span>
- <span class="n">TranscoderOutput</span> <span class="n">output</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderOutput</span><span class="p">(</span><span class="n">ostream</span><span class="p">);</span>
- <span class="n">trans</span><span class="o">.</span><span class="n">transcode</span><span class="p">(</span><span class="n">input</span><span class="p">,</span> <span class="n">output</span><span class="p">);</span>
-
- <span class="sr">//</span> <span class="n">Flush</span> <span class="ow">and</span> <span class="nb">close</span> <span class="n">the</span> <span class="n">output</span><span class="o">.</span>
- <span class="n">ostream</span><span class="o">.</span><span class="n">flush</span><span class="p">();</span>
- <span class="n">ostream</span><span class="o">.</span><span class="nb">close</span><span class="p">();</span>
-<span class="p">}</span>
-
-<span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
- <span class="sr">//</span> <span class="n">Rasterize</span> <span class="n">the</span> <span class="n">samples</span><span class="o">/</span><span class="n">anne</span><span class="o">.</span><span class="n">svg</span> <span class="n">document</span> <span class="ow">and</span> <span class="n">save</span> <span class="n">it</span>
- <span class="sr">//</span> <span class="n">as</span> <span class="n">four</span> <span class="n">tiles</span><span class="o">.</span>
- <span class="n">SaveAsJPEGTiles</span> <span class="n">p</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SaveAsJPEGTiles</span><span class="p">();</span>
- <span class="n">String</span> <span class="n">in</span> <span class="o">=</span> <span class="s">"samples/anne.svg"</span><span class="p">;</span>
- <span class="nb">int</span> <span class="n">documentWidth</span> <span class="o">=</span> <span class="mi">450</span><span class="p">;</span>
- <span class="nb">int</span> <span class="n">documentHeight</span> <span class="o">=</span> <span class="mi">500</span><span class="p">;</span>
- <span class="nb">int</span> <span class="n">dw2</span> <span class="o">=</span> <span class="n">documentWidth</span> <span class="o">/</span> <span class="mi">2</span><span class="p">;</span>
- <span class="nb">int</span> <span class="n">dh2</span> <span class="o">=</span> <span class="n">documentHeight</span> <span class="o">/</span> <span class="mi">2</span><span class="p">;</span>
- <span class="n">p</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="s">"tileTopLeft.jpg"</span><span class="p">,</span> <span class="k">new</span> <span class="n">Rectangle</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">dw2</span><span class="p">,</span> <span class="n">dh2</span><span class="p">));</span>
- <span class="n">p</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="s">"tileTopRight.jpg"</span><span class="p">,</span> <span class="k">new</span> <span class="n">Rectangle</span><span class="p">(</span><span class="n">dw2</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">dw2</span><span class="p">,</span> <span class="n">dh2</span><span class="p">));</span>
- <span class="n">p</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="s">"tileBottomLeft.jpg"</span><span class="p">,</span> <span class="k">new</span> <span class="n">Rectangle</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">dh2</span><span class="p">,</span> <span class="n">dw2</span><span class="p">,</span> <span class="n">dh2</span><span class="p">));</span>
- <span class="n">p</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="s">"tileBottomRight.jpg"</span><span class="p">,</span> <span class="k">new</span> <span class="n">Rectangle</span><span class="p">(</span><span class="n">dw2</span><span class="p">,</span> <span class="n">dh2</span><span class="p">,</span> <span class="n">dw2</span><span class="p">,</span> <span class="n">dh2</span><span class="p">));</span>
- <span class="n">System</span><span class="o">.</span><span class="nb">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
+<p>The image transcoder lets you specify an area of interest (that is, a part of the SVG document). The key <code>KEY_AOI</code> allows you to select the region of the SVG document to render. The value of this key must be a <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Rectangle.html">java.awt.Rectangle</a> specified in pixels, using the coordinate space of the SVG document. The following example shows how you can split an SVG document into 4 tiles.</p>
+<div class="codehilite"><pre><span class="nb">import</span> <span class="n">java</span><span class="o">.</span><span class="n">io</span><span class="o">.*</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">java</span><span class="o">.</span><span class="n">awt</span><span class="o">.*</span><span class="p">;</span>
+
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">batik</span><span class="o">.</span><span class="n">transcoder</span><span class="o">.</span><span class="n">image</span><span class="o">.</span><span class="n">JPEGTranscoder</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">batik</span><span class="o">.</span><span class="n">transcoder</span><span class="o">.</span><span class="n">TranscoderInput</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">batik</span><span class="o">.</span><span class="n">transcoder</span><span class="o">.</span><span class="n">TranscoderOutput</span><span class="p">;</span>
+
+<span class="n">public</span> <span class="n">class</span> <span class="n">SaveAsJPEGTiles</span> <span class="p">{</span>
+
+ <span class="n">JPEGTranscoder</span> <span class="n">trans</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JPEGTranscoder</span><span class="p">();</span>
+
+ <span class="n">public</span> <span class="n">SaveAsJPEGTiles</span><span class="p">()</span> <span class="p">{</span>
+ <span class="n">trans</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_QUALITY</span><span class="p">,</span>
+ <span class="k">new</span> <span class="n">Float</span><span class="p">(</span><span class="mf">.8</span><span class="p">));</span>
+ <span class="p">}</span>
+
+ <span class="n">public</span> <span class="n">void</span> <span class="n">tile</span><span class="p">(</span><span class="n">String</span> <span class="n">inputFilename</span><span class="p">,</span>
+ <span class="n">String</span> <span class="n">outputFilename</span><span class="p">,</span>
+ <span class="n">Rectangle</span> <span class="n">aoi</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
+ <span class="sr">//</span> <span class="n">Set</span> <span class="n">hints</span> <span class="n">to</span> <span class="n">indicate</span> <span class="n">the</span> <span class="n">dimensions</span> <span class="n">of</span> <span class="n">the</span> <span class="n">output</span> <span class="n">image</span>
+ <span class="sr">//</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">input</span> <span class="n">area</span> <span class="n">of</span> <span class="n">interest</span><span class="o">.</span>
+ <span class="n">trans</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_WIDTH</span><span class="p">,</span>
+ <span class="k">new</span> <span class="n">Float</span><span class="p">(</span><span class="n">aoi</span><span class="o">.</span><span class="n">width</span><span class="p">));</span><span class="n">trans</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_HEIGHT</span><span class="p">,</span>
+ <span class="k">new</span> <span class="n">Float</span><span class="p">(</span><span class="n">aoi</span><span class="o">.</span><span class="n">height</span><span class="p">));</span><span class="n">trans</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_AOI</span><span class="p">,</span> <span class="n">aoi</span><span class="p">);</span>
+
+ <span class="sr">//</span> <span class="n">Transcode</span> <span class="n">the</span> <span class="n">file</span><span class="o">.</span>
+ <span class="n">String</span> <span class="n">svgURI</span> <span class="o">=</span> <span class="k">new</span> <span class="n">File</span><span class="p">(</span><span class="n">inputFilename</span><span class="p">)</span><span class="o">.</span><span class="n">toURL</span><span class="p">()</span><span class="o">.</span><span class="n">toString</span><span class="p">();</span>
+ <span class="n">TranscoderInput</span> <span class="n">input</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderInput</span><span class="p">(</span><span class="n">svgURI</span><span class="p">);</span>
+ <span class="n">OutputStream</span> <span class="n">ostream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FileOutputStream</span><span class="p">(</span><span class="n">outputFilename</span><span class="p">);</span>
+ <span class="n">TranscoderOutput</span> <span class="n">output</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderOutput</span><span class="p">(</span><span class="n">ostream</span><span class="p">);</span>
+ <span class="n">trans</span><span class="o">.</span><span class="n">transcode</span><span class="p">(</span><span class="n">input</span><span class="p">,</span> <span class="n">output</span><span class="p">);</span>
+
+ <span class="sr">//</span> <span class="n">Flush</span> <span class="ow">and</span> <span class="nb">close</span> <span class="n">the</span> <span class="n">output</span><span class="o">.</span>
+ <span class="n">ostream</span><span class="o">.</span><span class="n">flush</span><span class="p">();</span>
+ <span class="n">ostream</span><span class="o">.</span><span class="nb">close</span><span class="p">();</span>
+ <span class="p">}</span>
+
+ <span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
+ <span class="sr">//</span> <span class="n">Rasterize</span> <span class="n">the</span> <span class="n">samples</span><span class="o">/</span><span class="n">anne</span><span class="o">.</span><span class="n">svg</span> <span class="n">document</span> <span class="ow">and</span> <span class="n">save</span> <span class="n">it</span>
+ <span class="sr">//</span> <span class="n">as</span> <span class="n">four</span> <span class="n">tiles</span><span class="o">.</span>
+ <span class="n">SaveAsJPEGTiles</span> <span class="n">p</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SaveAsJPEGTiles</span><span class="p">();</span>
+ <span class="n">String</span> <span class="n">in</span> <span class="o">=</span> <span class="s">"samples/anne.svg"</span><span class="p">;</span>
+ <span class="nb">int</span> <span class="n">documentWidth</span> <span class="o">=</span> <span class="mi">450</span><span class="p">;</span>
+ <span class="nb">int</span> <span class="n">documentHeight</span> <span class="o">=</span> <span class="mi">500</span><span class="p">;</span>
+ <span class="nb">int</span> <span class="n">dw2</span> <span class="o">=</span> <span class="n">documentWidth</span> <span class="o">/</span> <span class="mi">2</span><span class="p">;</span>
+ <span class="nb">int</span> <span class="n">dh2</span> <span class="o">=</span> <span class="n">documentHeight</span> <span class="o">/</span> <span class="mi">2</span><span class="p">;</span>
+ <span class="n">p</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="s">"tileTopLeft.jpg"</span><span class="p">,</span> <span class="k">new</span> <span class="n">Rectangle</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">dw2</span><span class="p">,</span> <span class="n">dh2</span><span class="p">));</span>
+ <span class="n">p</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="s">"tileTopRight.jpg"</span><span class="p">,</span> <span class="k">new</span> <span class="n">Rectangle</span><span class="p">(</span><span class="n">dw2</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">dw2</span><span class="p">,</span> <span class="n">dh2</span><span class="p">));</span>
+ <span class="n">p</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="s">"tileBottomLeft.jpg"</span><span class="p">,</span> <span class="k">new</span> <span class="n">Rectangle</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">dh2</span><span class="p">,</span> <span class="n">dw2</span><span class="p">,</span> <span class="n">dh2</span><span class="p">));</span>
+ <span class="n">p</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="s">"tileBottomRight.jpg"</span><span class="p">,</span> <span class="k">new</span> <span class="n">Rectangle</span><span class="p">(</span><span class="n">dw2</span><span class="p">,</span> <span class="n">dh2</span><span class="p">,</span> <span class="n">dw2</span><span class="p">,</span> <span class="n">dh2</span><span class="p">));</span>
+ <span class="n">System</span><span class="o">.</span><span class="nb">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
+ <span class="p">}</span>
<span class="p">}</span>
</pre></div>
-<p>}
-This code splits the same document <code>anne.svg</code> into four tiles of the same size. Considering the document and its original size, we can determine four regions. Then we rasterize each region using the <code>KEY_AOI</code> key. Note that we also specify the image width and height to be the same as the area of interest width and height (so we keep a 1:1 zoom factor). You can of course use different values for the <code>KEY_WIDTH</code> and <code>KEY_HEIGHT</code> , that do not match the dimensions of the <code>KEY_AOI</code> key. In that case, first the area of interest will determine which part of the SVG document has to be rendered, then that part could be zoomed in or out depending on the specified raster image size.</p>
+<p>This code splits the same document <code>anne.svg</code> into four tiles of the same size. Considering the document and its original size, we can determine four regions. Then we rasterize each region using the <code>KEY_AOI</code> key. Note that we also specify the image width and height to be the same as the area of interest width and height (so we keep a 1:1 zoom factor). You can of course use different values for the <code>KEY_WIDTH</code> and <code>KEY_HEIGHT</code> , that do not match the dimensions of the <code>KEY_AOI</code> key. In that case, first the area of interest will determine which part of the SVG document has to be rendered, then that part could be zoomed in or out depending on the specified raster image size.</p>
<p>To try this program:</p>
<ol>
<li>
@@ -342,76 +348,80 @@ trans.addTranscodingHint(ImageTranscoder
trans.addTranscodingHint(ImageTranscoder.KEY_BACKGROUND_COLOR, Color.white);</dd>
</dl>
<h2 id="generating-an-image-from-an-svg-dom-tree-wzxhzdk15wzxhzdk16">Generating an image from an SVG DOM tree <a id="genImagefromSVGDOM"></a></h2>
-<p>The following code creates and saves an SVG DOM tree to a raster image.
-import java.io.*;</p>
-<p>import org.apache.batik.transcoder.image.JPEGTranscoder;
-import org.apache.batik.transcoder.TranscoderInput;
-import org.apache.batik.transcoder.TranscoderOutput;
-import org.apache.batik.dom.svg.SVGDOMImplementation;</p>
-<p>import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.DOMImplementation;</p>
-<p>public class DOMRasterizer {</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">Document</span> <span class="n">createDocument</span><span class="p">()</span> <span class="p">{</span>
-
- <span class="sr">//</span> <span class="n">Create</span> <span class="n">a</span> <span class="k">new</span> <span class="n">document</span><span class="o">.</span>
- <span class="n">DOMImplementation</span> <span class="n">impl</span> <span class="o">=</span> <span class="n">SVGDOMImplementation</span><span class="o">.</span><span class="n">getDOMImplementation</span><span class="p">();</span>
- <span class="n">String</span> <span class="n">svgNS</span> <span class="o">=</span> <span class="n">SVGDOMImplementation</span><span class="o">.</span><span class="n">SVG_NAMESPACE_URI</span><span class="p">;</span>
- <span class="n">Document</span> <span class="n">document</span> <span class="o">=</span>
- <span class="n">impl</span><span class="o">.</span><span class="n">createDocument</span><span class="p">(</span><span class="n">svgNS</span><span class="p">,</span> <span class="s">"svg"</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
- <span class="n">Element</span> <span class="n">root</span> <span class="o">=</span> <span class="n">document</span><span class="o">.</span><span class="n">getDocumentElement</span><span class="p">();</span>
- <span class="n">root</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"width"</span><span class="p">,</span> <span class="s">"450"</span><span class="p">);</span>
- <span class="n">root</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"height"</span><span class="p">,</span> <span class="s">"500"</span><span class="p">);</span>
-
- <span class="sr">//</span> <span class="n">Add</span> <span class="n">some</span> <span class="n">content</span> <span class="n">to</span> <span class="n">the</span> <span class="n">document</span><span class="o">.</span>
- <span class="n">Element</span> <span class="n">e</span><span class="p">;</span>
- <span class="n">e</span> <span class="o">=</span> <span class="n">document</span><span class="o">.</span><span class="n">createElementNS</span><span class="p">(</span><span class="n">svgNS</span><span class="p">,</span> <span class="s">"rect"</span><span class="p">);</span>
- <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"x"</span><span class="p">,</span> <span class="s">"10"</span><span class="p">);</span>
- <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"y"</span><span class="p">,</span> <span class="s">"10"</span><span class="p">);</span>
- <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"width"</span><span class="p">,</span> <span class="s">"200"</span><span class="p">);</span>
- <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"height"</span><span class="p">,</span> <span class="s">"300"</span><span class="p">);</span>
- <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"style"</span><span class="p">,</span> <span class="s">"fill:red;stroke:black;stroke-width:4"</span><span class="p">);</span>
- <span class="n">root</span><span class="o">.</span><span class="n">appendChild</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
-
- <span class="n">e</span> <span class="o">=</span> <span class="n">document</span><span class="o">.</span><span class="n">createElementNS</span><span class="p">(</span><span class="n">svgNS</span><span class="p">,</span> <span class="s">"circle"</span><span class="p">);</span>
- <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"cx"</span><span class="p">,</span> <span class="s">"225"</span><span class="p">);</span>
- <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"cy"</span><span class="p">,</span> <span class="s">"250"</span><span class="p">);</span>
- <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"r"</span><span class="p">,</span> <span class="s">"100"</span><span class="p">);</span>
- <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"style"</span><span class="p">,</span> <span class="s">"fill:green;fill-opacity:.5"</span><span class="p">);</span>
- <span class="n">root</span><span class="o">.</span><span class="n">appendChild</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
+<p>The following code creates and saves an SVG DOM tree to a raster image.</p>
+<div class="codehilite"><pre><span class="nb">import</span> <span class="n">java</span><span class="o">.</span><span class="n">io</span><span class="o">.*</span><span class="p">;</span>
- <span class="k">return</span> <span class="n">document</span><span class="p">;</span>
-<span class="p">}</span>
-
-<span class="n">public</span> <span class="n">void</span> <span class="n">save</span><span class="p">(</span><span class="n">Document</span> <span class="n">document</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
-
- <span class="sr">//</span> <span class="n">Create</span> <span class="n">a</span> <span class="n">JPEGTranscoder</span> <span class="ow">and</span> <span class="n">set</span> <span class="n">its</span> <span class="n">quality</span> <span class="n">hint</span><span class="o">.</span>
- <span class="n">JPEGTranscoder</span> <span class="n">t</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JPEGTranscoder</span><span class="p">();</span>
- <span class="n">t</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_QUALITY</span><span class="p">,</span>
- <span class="k">new</span> <span class="n">Float</span><span class="p">(</span><span class="mf">.8</span><span class="p">));</span>
-
- <span class="sr">//</span> <span class="n">Set</span> <span class="n">the</span> <span class="n">transcoder</span> <span class="n">input</span> <span class="ow">and</span> <span class="n">output</span><span class="o">.</span>
- <span class="n">TranscoderInput</span> <span class="n">input</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderInput</span><span class="p">(</span><span class="n">document</span><span class="p">);</span>
- <span class="n">OutputStream</span> <span class="n">ostream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FileOutputStream</span><span class="p">(</span><span class="s">"out.jpg"</span><span class="p">);</span>
- <span class="n">TranscoderOutput</span> <span class="n">output</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderOutput</span><span class="p">(</span><span class="n">ostream</span><span class="p">);</span>
-
- <span class="sr">//</span> <span class="n">Perform</span> <span class="n">the</span> <span class="n">transcoding</span><span class="o">.</span>
- <span class="n">t</span><span class="o">.</span><span class="n">transcode</span><span class="p">(</span><span class="n">input</span><span class="p">,</span> <span class="n">output</span><span class="p">);</span>
- <span class="n">ostream</span><span class="o">.</span><span class="n">flush</span><span class="p">();</span>
- <span class="n">ostream</span><span class="o">.</span><span class="nb">close</span><span class="p">();</span>
-<span class="p">}</span>
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">batik</span><span class="o">.</span><span class="n">transcoder</span><span class="o">.</span><span class="n">image</span><span class="o">.</span><span class="n">JPEGTranscoder</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">batik</span><span class="o">.</span><span class="n">transcoder</span><span class="o">.</span><span class="n">TranscoderInput</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">batik</span><span class="o">.</span><span class="n">transcoder</span><span class="o">.</span><span class="n">TranscoderOutput</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">batik</span><span class="o">.</span><span class="n">dom</span><span class="o">.</span><span class="n">svg</span><span class="o">.</span><span class="n">SVGDOMImplementation</span><span class="p">;</span>
+
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">w3c</span><span class="o">.</span><span class="n">dom</span><span class="o">.</span><span class="n">Document</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">w3c</span><span class="o">.</span><span class="n">dom</span><span class="o">.</span><span class="n">Element</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">w3c</span><span class="o">.</span><span class="n">dom</span><span class="o">.</span><span class="n">DOMImplementation</span><span class="p">;</span>
+
+<span class="n">public</span> <span class="n">class</span> <span class="n">DOMRasterizer</span> <span class="p">{</span>
+
+ <span class="n">public</span> <span class="n">Document</span> <span class="n">createDocument</span><span class="p">()</span> <span class="p">{</span>
+
+ <span class="sr">//</span> <span class="n">Create</span> <span class="n">a</span> <span class="k">new</span> <span class="n">document</span><span class="o">.</span>
+ <span class="n">DOMImplementation</span> <span class="n">impl</span> <span class="o">=</span> <span class="n">SVGDOMImplementation</span><span class="o">.</span><span class="n">getDOMImplementation</span><span class="p">();</span>
+ <span class="n">String</span> <span class="n">svgNS</span> <span class="o">=</span> <span class="n">SVGDOMImplementation</span><span class="o">.</span><span class="n">SVG_NAMESPACE_URI</span><span class="p">;</span>
+ <span class="n">Document</span> <span class="n">document</span> <span class="o">=</span>
+ <span class="n">impl</span><span class="o">.</span><span class="n">createDocument</span><span class="p">(</span><span class="n">svgNS</span><span class="p">,</span> <span class="s">"svg"</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
+ <span class="n">Element</span> <span class="n">root</span> <span class="o">=</span> <span class="n">document</span><span class="o">.</span><span class="n">getDocumentElement</span><span class="p">();</span>
+ <span class="n">root</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"width"</span><span class="p">,</span> <span class="s">"450"</span><span class="p">);</span>
+ <span class="n">root</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"height"</span><span class="p">,</span> <span class="s">"500"</span><span class="p">);</span>
+
+ <span class="sr">//</span> <span class="n">Add</span> <span class="n">some</span> <span class="n">content</span> <span class="n">to</span> <span class="n">the</span> <span class="n">document</span><span class="o">.</span>
+ <span class="n">Element</span> <span class="n">e</span><span class="p">;</span>
+ <span class="n">e</span> <span class="o">=</span> <span class="n">document</span><span class="o">.</span><span class="n">createElementNS</span><span class="p">(</span><span class="n">svgNS</span><span class="p">,</span> <span class="s">"rect"</span><span class="p">);</span>
+ <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"x"</span><span class="p">,</span> <span class="s">"10"</span><span class="p">);</span>
+ <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"y"</span><span class="p">,</span> <span class="s">"10"</span><span class="p">);</span>
+ <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"width"</span><span class="p">,</span> <span class="s">"200"</span><span class="p">);</span>
+ <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"height"</span><span class="p">,</span> <span class="s">"300"</span><span class="p">);</span>
+ <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"style"</span><span class="p">,</span> <span class="s">"fill:red;stroke:black;stroke-width:4"</span><span class="p">);</span>
+ <span class="n">root</span><span class="o">.</span><span class="n">appendChild</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
+
+ <span class="n">e</span> <span class="o">=</span> <span class="n">document</span><span class="o">.</span><span class="n">createElementNS</span><span class="p">(</span><span class="n">svgNS</span><span class="p">,</span> <span class="s">"circle"</span><span class="p">);</span>
+ <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"cx"</span><span class="p">,</span> <span class="s">"225"</span><span class="p">);</span>
+ <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"cy"</span><span class="p">,</span> <span class="s">"250"</span><span class="p">);</span>
+ <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"r"</span><span class="p">,</span> <span class="s">"100"</span><span class="p">);</span>
+ <span class="n">e</span><span class="o">.</span><span class="n">setAttributeNS</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="s">"style"</span><span class="p">,</span> <span class="s">"fill:green;fill-opacity:.5"</span><span class="p">);</span>
+ <span class="n">root</span><span class="o">.</span><span class="n">appendChild</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
+
+ <span class="k">return</span> <span class="n">document</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="n">public</span> <span class="n">void</span> <span class="n">save</span><span class="p">(</span><span class="n">Document</span> <span class="n">document</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
+
+ <span class="sr">//</span> <span class="n">Create</span> <span class="n">a</span> <span class="n">JPEGTranscoder</span> <span class="ow">and</span> <span class="n">set</span> <span class="n">its</span> <span class="n">quality</span> <span class="n">hint</span><span class="o">.</span>
+ <span class="n">JPEGTranscoder</span> <span class="n">t</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JPEGTranscoder</span><span class="p">();</span>
+ <span class="n">t</span><span class="o">.</span><span class="n">addTranscodingHint</span><span class="p">(</span><span class="n">JPEGTranscoder</span><span class="o">.</span><span class="n">KEY_QUALITY</span><span class="p">,</span>
+ <span class="k">new</span> <span class="n">Float</span><span class="p">(</span><span class="mf">.8</span><span class="p">));</span>
-<span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
- <span class="sr">//</span> <span class="n">Runs</span> <span class="n">the</span> <span class="n">example</span><span class="o">.</span>
- <span class="n">DOMRasterizer</span> <span class="n">rasterizer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DOMRasterizer</span><span class="p">();</span>
- <span class="n">Document</span> <span class="n">document</span> <span class="o">=</span> <span class="n">rasterizer</span><span class="o">.</span><span class="n">createDocument</span><span class="p">();</span>
- <span class="n">rasterizer</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">document</span><span class="p">);</span>
- <span class="n">System</span><span class="o">.</span><span class="nb">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
+ <span class="sr">//</span> <span class="n">Set</span> <span class="n">the</span> <span class="n">transcoder</span> <span class="n">input</span> <span class="ow">and</span> <span class="n">output</span><span class="o">.</span>
+ <span class="n">TranscoderInput</span> <span class="n">input</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderInput</span><span class="p">(</span><span class="n">document</span><span class="p">);</span>
+ <span class="n">OutputStream</span> <span class="n">ostream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FileOutputStream</span><span class="p">(</span><span class="s">"out.jpg"</span><span class="p">);</span>
+ <span class="n">TranscoderOutput</span> <span class="n">output</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TranscoderOutput</span><span class="p">(</span><span class="n">ostream</span><span class="p">);</span>
+
+ <span class="sr">//</span> <span class="n">Perform</span> <span class="n">the</span> <span class="n">transcoding</span><span class="o">.</span>
+ <span class="n">t</span><span class="o">.</span><span class="n">transcode</span><span class="p">(</span><span class="n">input</span><span class="p">,</span> <span class="n">output</span><span class="p">);</span>
+ <span class="n">ostream</span><span class="o">.</span><span class="n">flush</span><span class="p">();</span>
+ <span class="n">ostream</span><span class="o">.</span><span class="nb">close</span><span class="p">();</span>
+ <span class="p">}</span>
+
+ <span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
+ <span class="sr">//</span> <span class="n">Runs</span> <span class="n">the</span> <span class="n">example</span><span class="o">.</span>
+ <span class="n">DOMRasterizer</span> <span class="n">rasterizer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DOMRasterizer</span><span class="p">();</span>
+ <span class="n">Document</span> <span class="n">document</span> <span class="o">=</span> <span class="n">rasterizer</span><span class="o">.</span><span class="n">createDocument</span><span class="p">();</span>
+ <span class="n">rasterizer</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">document</span><span class="p">);</span>
+ <span class="n">System</span><span class="o">.</span><span class="nb">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
+ <span class="p">}</span>
<span class="p">}</span>
</pre></div>
-<p>}</p>
<p>This code is divided into two distinct parts.</p>
<dl>
<dt>Creating an SVG DOM tree</dt>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org