Mateusz created BATIK-1288: ------------------------------ Summary: 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 Fix For: trunk 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: batik-dev-unsubscr...@xmlgraphics.apache.org For additional commands, e-mail: batik-dev-h...@xmlgraphics.apache.org