From 23e173b7e6e095c15ac2384e462abbc4281f3e32 Mon Sep 17 00:00:00 2001 From: Simon Steiner Date: Wed, 29 Nov 2023 16:17:22 +0000 Subject: FOP-3163: Optimise performance of PNG with alpha using raw loader --- .../src/main/java/org/apache/fop/render/pdf/ImageRawPNGAdapter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fop-core/src/main/java/org/apache/fop/render/pdf/ImageRawPNGAdapter.java b/fop-core/src/main/java/org/apache/fop/render/pdf/ImageRawPNGAdapter.java index 9742036b7..8a4258bfc 100644 --- a/fop-core/src/main/java/org/apache/fop/render/pdf/ImageRawPNGAdapter.java +++ b/fop-core/src/main/java/org/apache/fop/render/pdf/ImageRawPNGAdapter.java @@ -23,6 +23,7 @@ package org.apache.fop.render.pdf; import java.awt.image.ColorModel; import java.awt.image.IndexColorModel; +import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; @@ -117,7 +118,7 @@ public class ImageRawPNGAdapter extends AbstractImageAdapter { // here we need to inflate the PNG pixel data, which includes alpha, separate the alpha channel // and then deflate it back again ByteArrayOutputStream baos = new ByteArrayOutputStream(); - DeflaterOutputStream dos = new DeflaterOutputStream(baos, new Deflater()); + BufferedOutputStream dos = new BufferedOutputStream(new DeflaterOutputStream(baos, new Deflater())); InputStream in = ((ImageRawStream) image).createInputStream(); try { InflaterInputStream infStream = new InflaterInputStream(in, new Inflater()); @@ -226,7 +227,7 @@ public class ImageRawPNGAdapter extends AbstractImageAdapter { int filter; // here we need to inflate the PNG pixel data, which includes alpha, separate the alpha // channel and then deflate the RGB channels back again - DeflaterOutputStream dos = new DeflaterOutputStream(out, new Deflater()); + BufferedOutputStream dos = new BufferedOutputStream(new DeflaterOutputStream(out, new Deflater())); while ((filter = dataStream.read()) != -1) { byte[] bytes = new byte[bytesPerRow]; dataStream.readFully(bytes, 0, bytesPerRow); -- cgit v1.2.3