Class JPEGImageWriter

  • All Implemented Interfaces:
    javax.imageio.ImageTranscoder

    public final class JPEGImageWriter
    extends ImageWriterBase
    JPEGImageWriter
    Version:
    $Id: JPEGImageWriter.java,v 1.0 06.02.12 16:39 haraldk Exp$
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private javax.imageio.ImageWriter delegate
      Our JPEG writing delegate
      private JPEGImageWriter.ProgressDelegator progressDelegator
      Listens to progress updates in the delegate, and delegates back to this instance
      • Fields inherited from class javax.imageio.ImageWriter

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

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void abort()  
      boolean canInsertEmpty​(int imageIndex)  
      boolean canInsertImage​(int imageIndex)  
      boolean canRemoveImage​(int imageIndex)  
      boolean canReplaceImageMetadata​(int imageIndex)  
      boolean canReplacePixels​(int imageIndex)  
      boolean canReplaceStreamMetadata()  
      boolean canWriteEmpty()  
      boolean canWriteRasters()  
      boolean canWriteSequence()  
      private javax.imageio.metadata.IIOMetadata convertCMYKMetadata​(javax.imageio.metadata.IIOMetadata original, javax.imageio.ImageTypeSpecifier destinationType, javax.imageio.ImageWriteParam param)  
      javax.imageio.metadata.IIOMetadata 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
      void dispose()  
      void endInsertEmpty()  
      void endReplacePixels()  
      void endWriteEmpty()  
      void endWriteSequence()  
      java.util.Locale[] getAvailableLocales()  
      javax.imageio.metadata.IIOMetadata getDefaultImageMetadata​(javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)  
      javax.imageio.metadata.IIOMetadata getDefaultStreamMetadata​(javax.imageio.ImageWriteParam param)
      Returns null
      javax.imageio.ImageWriteParam getDefaultWriteParam()  
      java.util.Locale getLocale()  
      int getNumThumbnailsSupported​(javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param, javax.imageio.metadata.IIOMetadata streamMetadata, javax.imageio.metadata.IIOMetadata imageMetadata)  
      java.lang.Object getOutput()  
      java.awt.Dimension[] getPreferredThumbnailSizes​(javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param, javax.imageio.metadata.IIOMetadata streamMetadata, javax.imageio.metadata.IIOMetadata imageMetadata)  
      private static java.awt.image.Raster getRaster​(java.awt.image.RenderedImage image)  
      private void installListeners()  
      private boolean isDestinationCMYK​(javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param)  
      void prepareInsertEmpty​(int imageIndex, javax.imageio.ImageTypeSpecifier imageType, int width, int height, javax.imageio.metadata.IIOMetadata imageMetadata, java.util.List<? extends java.awt.image.BufferedImage> thumbnails, javax.imageio.ImageWriteParam param)  
      void prepareReplacePixels​(int imageIndex, java.awt.Rectangle region)  
      void prepareWriteEmpty​(javax.imageio.metadata.IIOMetadata streamMetadata, javax.imageio.ImageTypeSpecifier imageType, int width, int height, javax.imageio.metadata.IIOMetadata imageMetadata, java.util.List<? extends java.awt.image.BufferedImage> thumbnails, javax.imageio.ImageWriteParam param)  
      void prepareWriteSequence​(javax.imageio.metadata.IIOMetadata streamMetadata)  
      void removeImage​(int imageIndex)  
      void replaceImageMetadata​(int imageIndex, javax.imageio.metadata.IIOMetadata imageMetadata)  
      void replacePixels​(java.awt.image.Raster raster, javax.imageio.ImageWriteParam param)  
      void replacePixels​(java.awt.image.RenderedImage image, javax.imageio.ImageWriteParam param)  
      void replaceStreamMetadata​(javax.imageio.metadata.IIOMetadata streamMetadata)  
      void reset()  
      protected void resetMembers()  
      void setLocale​(java.util.Locale locale)  
      void setOutput​(java.lang.Object output)  
      void write​(javax.imageio.metadata.IIOMetadata streamMetadata, javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param)  
      private void writeCMYK​(javax.imageio.metadata.IIOMetadata streamMetadata, javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param)  
      void writeInsert​(int imageIndex, javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param)  
      void writeToSequence​(javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param)  
      • Methods inherited from class javax.imageio.ImageWriter

        abortRequested, addIIOWriteProgressListener, addIIOWriteWarningListener, clearAbortRequest, getOriginatingProvider, processImageComplete, processImageProgress, processImageStarted, processThumbnailComplete, processThumbnailProgress, processThumbnailStarted, processWarningOccurred, processWarningOccurred, processWriteAborted, removeAllIIOWriteProgressListeners, removeAllIIOWriteWarningListeners, removeIIOWriteProgressListener, removeIIOWriteWarningListener, write, write
      • Methods inherited from class java.lang.Object

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

      • delegate

        private final javax.imageio.ImageWriter delegate
        Our JPEG writing delegate
      • progressDelegator

        private final JPEGImageWriter.ProgressDelegator progressDelegator
        Listens to progress updates in the delegate, and delegates back to this instance
    • Constructor Detail

      • JPEGImageWriter

        public JPEGImageWriter​(JPEGImageWriterSpi provider,
                               javax.imageio.ImageWriter delegate)
    • Method Detail

      • installListeners

        private void installListeners()
      • getOutput

        public java.lang.Object getOutput()
        Overrides:
        getOutput in class javax.imageio.ImageWriter
      • getAvailableLocales

        public java.util.Locale[] getAvailableLocales()
        Overrides:
        getAvailableLocales in class javax.imageio.ImageWriter
      • setLocale

        public void setLocale​(java.util.Locale locale)
        Overrides:
        setLocale in class javax.imageio.ImageWriter
      • getLocale

        public java.util.Locale getLocale()
        Overrides:
        getLocale in class javax.imageio.ImageWriter
      • getDefaultWriteParam

        public javax.imageio.ImageWriteParam getDefaultWriteParam()
        Overrides:
        getDefaultWriteParam in class javax.imageio.ImageWriter
      • 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.
      • getDefaultImageMetadata

        public javax.imageio.metadata.IIOMetadata getDefaultImageMetadata​(javax.imageio.ImageTypeSpecifier imageType,
                                                                          javax.imageio.ImageWriteParam param)
        Specified by:
        getDefaultImageMetadata in class javax.imageio.ImageWriter
      • 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.
      • convertImageMetadata

        public javax.imageio.metadata.IIOMetadata 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
      • getNumThumbnailsSupported

        public int getNumThumbnailsSupported​(javax.imageio.ImageTypeSpecifier imageType,
                                             javax.imageio.ImageWriteParam param,
                                             javax.imageio.metadata.IIOMetadata streamMetadata,
                                             javax.imageio.metadata.IIOMetadata imageMetadata)
        Overrides:
        getNumThumbnailsSupported in class javax.imageio.ImageWriter
      • getPreferredThumbnailSizes

        public java.awt.Dimension[] getPreferredThumbnailSizes​(javax.imageio.ImageTypeSpecifier imageType,
                                                               javax.imageio.ImageWriteParam param,
                                                               javax.imageio.metadata.IIOMetadata streamMetadata,
                                                               javax.imageio.metadata.IIOMetadata imageMetadata)
        Overrides:
        getPreferredThumbnailSizes in class javax.imageio.ImageWriter
      • canWriteRasters

        public boolean canWriteRasters()
        Overrides:
        canWriteRasters in class javax.imageio.ImageWriter
      • 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
      • isDestinationCMYK

        private boolean isDestinationCMYK​(javax.imageio.IIOImage image,
                                          javax.imageio.ImageWriteParam param)
      • writeCMYK

        private void writeCMYK​(javax.imageio.metadata.IIOMetadata streamMetadata,
                               javax.imageio.IIOImage image,
                               javax.imageio.ImageWriteParam param)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • convertCMYKMetadata

        private javax.imageio.metadata.IIOMetadata convertCMYKMetadata​(javax.imageio.metadata.IIOMetadata original,
                                                                       javax.imageio.ImageTypeSpecifier destinationType,
                                                                       javax.imageio.ImageWriteParam param)
                                                                throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getRaster

        private static java.awt.image.Raster getRaster​(java.awt.image.RenderedImage image)
      • 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
      • 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
      • canReplaceStreamMetadata

        public boolean canReplaceStreamMetadata()
                                         throws java.io.IOException
        Overrides:
        canReplaceStreamMetadata in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • replaceStreamMetadata

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

        public boolean canReplaceImageMetadata​(int imageIndex)
                                        throws java.io.IOException
        Overrides:
        canReplaceImageMetadata in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • replaceImageMetadata

        public void replaceImageMetadata​(int imageIndex,
                                         javax.imageio.metadata.IIOMetadata imageMetadata)
                                  throws java.io.IOException
        Overrides:
        replaceImageMetadata in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • canInsertImage

        public boolean canInsertImage​(int imageIndex)
                               throws java.io.IOException
        Overrides:
        canInsertImage in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • writeInsert

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

        public boolean canRemoveImage​(int imageIndex)
                               throws java.io.IOException
        Overrides:
        canRemoveImage in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • removeImage

        public void removeImage​(int imageIndex)
                         throws java.io.IOException
        Overrides:
        removeImage in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • canWriteEmpty

        public boolean canWriteEmpty()
                              throws java.io.IOException
        Overrides:
        canWriteEmpty in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • prepareWriteEmpty

        public void prepareWriteEmpty​(javax.imageio.metadata.IIOMetadata streamMetadata,
                                      javax.imageio.ImageTypeSpecifier imageType,
                                      int width,
                                      int height,
                                      javax.imageio.metadata.IIOMetadata imageMetadata,
                                      java.util.List<? extends java.awt.image.BufferedImage> thumbnails,
                                      javax.imageio.ImageWriteParam param)
                               throws java.io.IOException
        Overrides:
        prepareWriteEmpty in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • endWriteEmpty

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

        public boolean canInsertEmpty​(int imageIndex)
                               throws java.io.IOException
        Overrides:
        canInsertEmpty in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • prepareInsertEmpty

        public void prepareInsertEmpty​(int imageIndex,
                                       javax.imageio.ImageTypeSpecifier imageType,
                                       int width,
                                       int height,
                                       javax.imageio.metadata.IIOMetadata imageMetadata,
                                       java.util.List<? extends java.awt.image.BufferedImage> thumbnails,
                                       javax.imageio.ImageWriteParam param)
                                throws java.io.IOException
        Overrides:
        prepareInsertEmpty in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • endInsertEmpty

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

        public boolean canReplacePixels​(int imageIndex)
                                 throws java.io.IOException
        Overrides:
        canReplacePixels in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • prepareReplacePixels

        public void prepareReplacePixels​(int imageIndex,
                                         java.awt.Rectangle region)
                                  throws java.io.IOException
        Overrides:
        prepareReplacePixels in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • replacePixels

        public void replacePixels​(java.awt.image.RenderedImage image,
                                  javax.imageio.ImageWriteParam param)
                           throws java.io.IOException
        Overrides:
        replacePixels in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • replacePixels

        public void replacePixels​(java.awt.image.Raster raster,
                                  javax.imageio.ImageWriteParam param)
                           throws java.io.IOException
        Overrides:
        replacePixels in class javax.imageio.ImageWriter
        Throws:
        java.io.IOException
      • endReplacePixels

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

        public void abort()
        Overrides:
        abort in class javax.imageio.ImageWriter