[
https://issues.apache.org/jira/browse/BATIK-1288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Simon Steiner updated BATIK-1288:
---------------------------------
Fix Version/s: (was: trunk)
> PNG transcoder does not render PNG file correctly
> -------------------------------------------------
>
> Key: BATIK-1288
> URL: https://issues.apache.org/jira/browse/BATIK-1288
> Project: Batik
> Issue Type: Bug
> Affects Versions: 1.13
> Environment: MacOS Catalina 10.15.4, MacOS Mojave, both visible on
> MacBooks host systems as well as inside Virtual Machines
> openjdk version "1.8.0_252"
> OpenJDK Runtime Environment Corretto-8.252.09.1 (build 1.8.0_252-b09)
> OpenJDK 64-Bit Server VM Corretto-8.252.09.1 (build 25.252-b09, mixed mode)
> Reporter: Mateusz
> Priority: Major
> Attachments: SaveAsPNG.java, correct.png, incorrect_output_1.png,
> incorrect_output_2.png, input.svg
>
>
> Please consider such code I use for rendering PNG from SVG. We use it for
> rendering various icon sizes. The majority of sizes are rendered as expected
> (correct.png) but some are being rendered incorrect (especially 180 and 360).
> That affects only some environments - on the majority of our MacBooks it
> works fine for most trials and on VMs it usually results in incorrect PNG
> rendered as below. Also, I didn't notice it happening for any other text
> strings that the one from the sample (that obviously doesn't mean it is the
> only one causing that).
> May I ask you to check if that is something to be considered a batik bug? Or,
> if not - please please point me any investigation directions in terms of my
> code correctness, possible environment issues worth checking?
>
> Thanks!
>
> *Sample code:*
> ```
> PNGTranscoder t = new PNGTranscoder()
> {
> @Override
> protected ImageRenderer createRenderer()
> {
> ImageRenderer r = super.createRenderer();
> RenderingHints rh = r.getRenderingHints();
> rh.add(new
> RenderingHints(RenderingHints.KEY_ALPHA_INTERPOLATION,RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY));
> rh.add(new
> RenderingHints(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON));
> rh.add(new
> RenderingHints(RenderingHints.KEY_COLOR_RENDERING,RenderingHints.VALUE_COLOR_RENDER_QUALITY));
> rh.add(new
> RenderingHints(RenderingHints.KEY_DITHERING,RenderingHints.VALUE_DITHER_DISABLE));
> rh.add(new
> RenderingHints(RenderingHints.KEY_FRACTIONALMETRICS,RenderingHints.VALUE_FRACTIONALMETRICS_ON));
> rh.add(new
> RenderingHints(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BICUBIC));
> rh.add(new
> RenderingHints(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY));
> rh.add(new
> RenderingHints(RenderingHints.KEY_STROKE_CONTROL,RenderingHints.VALUE_STROKE_PURE));
> rh.add(new
> RenderingHints(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF));
> return r;
> }
> };
> float size = 180.0f;
> // Set the transcoding hints.
> t.addTranscodingHint(PNGTranscoder.KEY_WIDTH, size);
> t.addTranscodingHint(PNGTranscoder.KEY_HEIGHT, size);
> // Create the transcoder input.
> String svgURI = new File(args[0]).toURI().toString();
> TranscoderInput input = new TranscoderInput(svgURI);
> // Create the transcoder output.
> OutputStream ostream = new FileOutputStream("out.png");
> TranscoderOutput output = new TranscoderOutput(ostream);
> // Save the image.
> t.transcode(input, output);
> ```
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]