Author: ruschein
Date: 2010-02-03 09:26:16 -0800 (Wed, 03 Feb 2010)
New Revision: 19162
Modified:
csplugins/trunk/util.compression/src/org/cytoscape/util/compression/BufferedImageCompressor.java
Log:
Greatly spead up BufferedImage re-creation.
Modified:
csplugins/trunk/util.compression/src/org/cytoscape/util/compression/BufferedImageCompressor.java
===================================================================
---
csplugins/trunk/util.compression/src/org/cytoscape/util/compression/BufferedImageCompressor.java
2010-02-03 12:48:37 UTC (rev 19161)
+++
csplugins/trunk/util.compression/src/org/cytoscape/util/compression/BufferedImageCompressor.java
2010-02-03 17:26:16 UTC (rev 19162)
@@ -40,14 +40,7 @@
public class BufferedImageCompressor {
static public int[] compress(final BufferedImage image) throws
IllegalStateException {
- final int[] imageAsIntArray;
- if (image.getRaster().getDataBuffer() instanceof DataBufferInt)
{
- final DataBufferInt dataBuffer =
(DataBufferInt)image.getRaster().getDataBuffer();
- imageAsIntArray = dataBuffer.getData();
- }
- else
- throw new IllegalStateException("image has an unknown
internal representation!");
-
+ final int[] imageAsIntArray = getPixelArray(image);
return (new RLEIntCompressor()).compress(imageAsIntArray);
}
@@ -55,14 +48,17 @@
final int[] imageAsIntArray = (new
RLEIntCompressor()).expand(compressedImage);
final BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB_PRE);
+ final int[] imageBuffer = getPixelArray(image);
+ System.arraycopy(imageAsIntArray, 0, imageBuffer, 0,
imageAsIntArray.length);
+ return image;
+ }
+
+ static private int[] getPixelArray(final BufferedImage image) throws
IllegalStateException {
if (image.getRaster().getDataBuffer() instanceof DataBufferInt)
{
final DataBufferInt dataBuffer =
(DataBufferInt)image.getRaster().getDataBuffer();
- for (int i = 0; i < imageAsIntArray.length; ++i)
- dataBuffer.setElem(i, imageAsIntArray[i]);
+ return dataBuffer.getData();
}
else
throw new IllegalStateException("image has an unknown
internal representation!");
-
- return image;
}
}
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.