diff options
Diffstat (limited to 'src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java')
-rw-r--r-- | src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java b/src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java new file mode 100644 index 000000000..8b9fa5dae --- /dev/null +++ b/src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java @@ -0,0 +1,31 @@ +package jogamp.opengl.util.pngj;
+
+import java.io.OutputStream;
+
+import jogamp.opengl.util.pngj.chunks.ChunkHelper;
+import jogamp.opengl.util.pngj.chunks.ChunkRaw;
+
+
+/**
+ * outputs the stream for IDAT chunk , fragmented at fixed size (16384 default).
+ */
+class PngIDatChunkOutputStream extends ProgressiveOutputStream {
+ private static final int SIZE_DEFAULT = 16384;
+ private final OutputStream outputStream;
+
+ PngIDatChunkOutputStream(OutputStream outputStream) {
+ this(outputStream, SIZE_DEFAULT);
+ }
+
+ PngIDatChunkOutputStream(OutputStream outputStream, int size) {
+ super(size);
+ this.outputStream = outputStream;
+ }
+
+ @Override
+ public final void flushBuffer(byte[] b, int len) {
+ ChunkRaw c = new ChunkRaw(len, ChunkHelper.b_IDAT, false);
+ c.data = b;
+ c.writeChunk(outputStream);
+ }
+}
|