XGC-93: fix performancy penalty caused by excessive DeflaterOutputStream.write(byte) calls, thanks to Andre Klemann

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/commons/trunk@1712525 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/java/org/apache/xmlgraphics/ps/ImageEncodingHelper.java b/src/java/org/apache/xmlgraphics/ps/ImageEncodingHelper.java
index 97986b6..2288e4d 100644
--- a/src/java/org/apache/xmlgraphics/ps/ImageEncodingHelper.java
+++ b/src/java/org/apache/xmlgraphics/ps/ImageEncodingHelper.java
@@ -323,11 +323,13 @@
                 byte[] bytes = ((DataBufferByte) buffer).getData();
                 // see determineEncodingColorModel() to see why we permute B and R here
                 if (isBGR) {
+                    byte[] bytesPermutated = new byte[bytes.length];
                     for (int i = 0; i < bytes.length; i += 3) {
-                        out.write(bytes[i + 2]);
-                        out.write(bytes[i + 1]);
-                        out.write(bytes[i]);
+                        bytesPermutated[i] = bytes[i+2];
+                        bytesPermutated[i+1] = bytes[i+1];
+                        bytesPermutated[i+2] = bytes[i];
                     }
+                    out.write(bytesPermutated);
                 } else {
                     out.write(bytes);
                 }