Class TIFFImageWriter

  • All Implemented Interfaces:
    javax.imageio.ImageTranscoder

    public final class TIFFImageWriter
    extends ImageWriterBase
    TIFFImageWriter
    Version:
    $Id: TIFFImageWriter.java,v 1.0 18.09.13 12:46 haraldk Exp$
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int sequenceIndex  
      private long sequenceLastIFDPos
      Position of last IFD Pointer on active sequence writing
      private TIFFWriter sequenceTIFFWriter
      Metadata writer for sequence writing
      private boolean writingSequence
      Flag for active sequence writing
      • Fields inherited from class javax.imageio.ImageWriter

        availableLocales, locale, originatingProvider, output, progressListeners, warningListeners, warningLocales
    • Constructor Summary

      Constructors 
      Constructor Description
      TIFFImageWriter​(javax.imageio.spi.ImageWriterSpi provider)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private short[] asShortArray​(int[] integers)  
      boolean canWriteSequence()  
      private int computePixelSize​(java.awt.image.SampleModel sampleModel)  
      TIFFImageMetadata convertImageMetadata​(javax.imageio.metadata.IIOMetadata inData, javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)  
      javax.imageio.metadata.IIOMetadata convertStreamMetadata​(javax.imageio.metadata.IIOMetadata inData, javax.imageio.ImageWriteParam param)
      Returns null
      private javax.imageio.ImageWriteParam copyParams​(javax.imageio.ImageWriteParam param, javax.imageio.ImageWriter writer)  
      private short[] createColorMap​(java.awt.image.IndexColorModel colorModel, int sampleSize)  
      private java.io.DataOutput createCompressorStream​(java.awt.image.RenderedImage image, javax.imageio.ImageWriteParam param, java.util.Map<java.lang.Integer,​Entry> entries)  
      void endWriteSequence()  
      private static void flushBuffer​(byte[] buffer, int bufferPos, java.io.DataOutput stream)  
      private static void flushStream​(java.io.DataOutput stream)  
      TIFFImageMetadata getDefaultImageMetadata​(javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)  
      javax.imageio.metadata.IIOMetadata getDefaultStreamMetadata​(javax.imageio.ImageWriteParam param)
      Returns null
      javax.imageio.ImageWriteParam getDefaultWriteParam()  
      private int getPhotometricInterpretation​(java.awt.image.ColorModel colorModel, int compression)  
      private javax.imageio.IIOImage imageOnly​(javax.imageio.IIOImage image)  
      private TIFFImageMetadata initMeta​(Directory ifd, javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)  
      private boolean isBigTIFF()  
      static void main​(java.lang.String[] args)  
      private void mergeSafeMetadata​(Directory ifd, java.util.Map<java.lang.Integer,​Entry> entries)  
      void prepareWriteSequence​(javax.imageio.metadata.IIOMetadata streamMetadata)  
      protected void resetMembers()  
      void setOutput​(java.lang.Object output)  
      private int upScale​(int color)  
      void write​(javax.imageio.metadata.IIOMetadata streamMetadata, javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param)  
      private void writeImageData​(java.io.DataOutput stream, int imageIndex, java.awt.image.RenderedImage renderedImage, int numComponents, int[] bandOffsets, int[] bitOffsets)  
      private long writePage​(int imageIndex, javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param, TIFFWriter tiffWriter, long lastIFDPointerOffset)  
      void writeToSequence​(javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param)  
      • Methods inherited from class javax.imageio.ImageWriter

        abort, abortRequested, addIIOWriteProgressListener, addIIOWriteWarningListener, canInsertEmpty, canInsertImage, canRemoveImage, canReplaceImageMetadata, canReplacePixels, canReplaceStreamMetadata, canWriteEmpty, canWriteRasters, clearAbortRequest, endInsertEmpty, endReplacePixels, endWriteEmpty, getAvailableLocales, getLocale, getNumThumbnailsSupported, getOriginatingProvider, getOutput, getPreferredThumbnailSizes, prepareInsertEmpty, prepareReplacePixels, prepareWriteEmpty, processImageComplete, processImageProgress, processImageStarted, processThumbnailComplete, processThumbnailProgress, processThumbnailStarted, processWarningOccurred, processWarningOccurred, processWriteAborted, removeAllIIOWriteProgressListeners, removeAllIIOWriteWarningListeners, removeIIOWriteProgressListener, removeIIOWriteWarningListener, removeImage, replaceImageMetadata, replacePixels, replacePixels, replaceStreamMetadata, setLocale, write, write, writeInsert
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • writingSequence

        private boolean writingSequence
        Flag for active sequence writing
      • sequenceIndex

        private int sequenceIndex
      • sequenceTIFFWriter

        private TIFFWriter sequenceTIFFWriter
        Metadata writer for sequence writing
      • sequenceLastIFDPos

        private long sequenceLastIFDPos
        Position of last IFD Pointer on active sequence writing
    • Constructor Detail

      • TIFFImageWriter

        TIFFImageWriter​(javax.imageio.spi.ImageWriterSpi provider)
    • Method Detail

      • write

        public void write​(javax.imageio.metadata.IIOMetadata streamMetadata,
                          javax.imageio.IIOImage image,
                          javax.imageio.ImageWriteParam param)
                   throws java.io.IOException
        Specified by:
        write in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • writePage

        private long writePage​(int imageIndex,
                               javax.imageio.IIOImage image,
                               javax.imageio.ImageWriteParam param,
                               TIFFWriter tiffWriter,
                               long lastIFDPointerOffset)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • imageOnly

        private javax.imageio.IIOImage imageOnly​(javax.imageio.IIOImage image)
      • copyParams

        private javax.imageio.ImageWriteParam copyParams​(javax.imageio.ImageWriteParam param,
                                                         javax.imageio.ImageWriter writer)
      • computePixelSize

        private int computePixelSize​(java.awt.image.SampleModel sampleModel)
      • createCompressorStream

        private java.io.DataOutput createCompressorStream​(java.awt.image.RenderedImage image,
                                                          javax.imageio.ImageWriteParam param,
                                                          java.util.Map<java.lang.Integer,​Entry> entries)
      • getPhotometricInterpretation

        private int getPhotometricInterpretation​(java.awt.image.ColorModel colorModel,
                                                 int compression)
      • createColorMap

        private short[] createColorMap​(java.awt.image.IndexColorModel colorModel,
                                       int sampleSize)
      • upScale

        private int upScale​(int color)
      • asShortArray

        private short[] asShortArray​(int[] integers)
      • writeImageData

        private void writeImageData​(java.io.DataOutput stream,
                                    int imageIndex,
                                    java.awt.image.RenderedImage renderedImage,
                                    int numComponents,
                                    int[] bandOffsets,
                                    int[] bitOffsets)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • flushStream

        private static void flushStream​(java.io.DataOutput stream)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • flushBuffer

        private static void flushBuffer​(byte[] buffer,
                                        int bufferPos,
                                        java.io.DataOutput stream)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • getDefaultImageMetadata

        public TIFFImageMetadata getDefaultImageMetadata​(javax.imageio.ImageTypeSpecifier imageType,
                                                         javax.imageio.ImageWriteParam param)
        Specified by:
        getDefaultImageMetadata in class javax.imageio.ImageWriter
      • convertImageMetadata

        public TIFFImageMetadata convertImageMetadata​(javax.imageio.metadata.IIOMetadata inData,
                                                      javax.imageio.ImageTypeSpecifier imageType,
                                                      javax.imageio.ImageWriteParam param)
        Specified by:
        convertImageMetadata in interface javax.imageio.ImageTranscoder
        Specified by:
        convertImageMetadata in class javax.imageio.ImageWriter
      • initMeta

        private TIFFImageMetadata initMeta​(Directory ifd,
                                           javax.imageio.ImageTypeSpecifier imageType,
                                           javax.imageio.ImageWriteParam param)
      • mergeSafeMetadata

        private void mergeSafeMetadata​(Directory ifd,
                                       java.util.Map<java.lang.Integer,​Entry> entries)
      • getDefaultStreamMetadata

        public javax.imageio.metadata.IIOMetadata getDefaultStreamMetadata​(javax.imageio.ImageWriteParam param)
        Description copied from class: ImageWriterBase
        Returns null
        Overrides:
        getDefaultStreamMetadata in class ImageWriterBase
        Parameters:
        param - ignored.
        Returns:
        null.
      • convertStreamMetadata

        public javax.imageio.metadata.IIOMetadata convertStreamMetadata​(javax.imageio.metadata.IIOMetadata inData,
                                                                        javax.imageio.ImageWriteParam param)
        Description copied from class: ImageWriterBase
        Returns null
        Specified by:
        convertStreamMetadata in interface javax.imageio.ImageTranscoder
        Overrides:
        convertStreamMetadata in class ImageWriterBase
        Parameters:
        inData - ignored.
        param - ignored.
        Returns:
        null.
      • getDefaultWriteParam

        public javax.imageio.ImageWriteParam getDefaultWriteParam()
        Overrides:
        getDefaultWriteParam in class javax.imageio.ImageWriter
      • canWriteSequence

        public boolean canWriteSequence()
        Overrides:
        canWriteSequence in class javax.imageio.ImageWriter
      • prepareWriteSequence

        public void prepareWriteSequence​(javax.imageio.metadata.IIOMetadata streamMetadata)
                                  throws java.io.IOException
        Overrides:
        prepareWriteSequence in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • isBigTIFF

        private boolean isBigTIFF()
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • writeToSequence

        public void writeToSequence​(javax.imageio.IIOImage image,
                                    javax.imageio.ImageWriteParam param)
                             throws java.io.IOException
        Overrides:
        writeToSequence in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • endWriteSequence

        public void endWriteSequence()
                              throws java.io.IOException
        Overrides:
        endWriteSequence in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • main

        public static void main​(java.lang.String[] args)
                         throws java.io.IOException
        Throws:
        java.io.IOException