From 156990afe054dbe76d42939bfb2f26c72946a2bb Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Wed, 13 Jun 2018 16:53:43 +0200 Subject: [PATCH] Simplified write logic, by reusing sequence writing (single image sequence). --- .../imageio/plugins/tiff/TIFFImageWriter.java | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriter.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriter.java index e88b50ba..7763001e 100644 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriter.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriter.java @@ -132,16 +132,9 @@ public final class TIFFImageWriter extends ImageWriterBase { @Override public void write(final IIOMetadata streamMetadata, final IIOImage image, final ImageWriteParam param) throws IOException { - assertOutput(); - configureStreamByteOrder(streamMetadata, imageOutput); - - // TODO: Make TIFFEntry and possibly TIFFDirectory? public - TIFFWriter tiffWriter = new TIFFWriter(); - tiffWriter.writeTIFFHeader(imageOutput); - - writePage(0, image, param, tiffWriter, imageOutput.getStreamPosition()); - - imageOutput.flush(); + prepareWriteSequence(streamMetadata); + writeToSequence(image, param); + endWriteSequence(); } private long writePage(int imageIndex, IIOImage image, ImageWriteParam param, TIFFWriter tiffWriter, long lastIFDPointerOffset) @@ -927,7 +920,7 @@ public final class TIFFImageWriter extends ImageWriterBase { } @Override - public void prepareWriteSequence(IIOMetadata streamMetadata) throws IOException { + public void prepareWriteSequence(final IIOMetadata streamMetadata) throws IOException { if (writingSequence) { throw new IllegalStateException("sequence writing has already been started!"); } @@ -942,7 +935,7 @@ public final class TIFFImageWriter extends ImageWriterBase { } @Override - public void writeToSequence(IIOImage image, ImageWriteParam param) throws IOException { + public void writeToSequence(final IIOImage image, final ImageWriteParam param) throws IOException { if (!writingSequence) { throw new IllegalStateException("prepareWriteSequence() must be called before writeToSequence()!"); }