org.springframework.http.converter

Class BufferedImageHttpMessageConverter

  • java.lang.Object
    • org.springframework.http.converter.BufferedImageHttpMessageConverter
  • All Implemented Interfaces:
    HttpMessageConverter<java.awt.image.BufferedImage>


    public class BufferedImageHttpMessageConverter
    extends java.lang.Object
    implements HttpMessageConverter<java.awt.image.BufferedImage>
    Implementation of HttpMessageConverter that can read and write BufferedImages.

    By default, this converter can read all media types that are supported by the registered image readers, and writes using the media type of the first available registered image writer. The latter can be overridden by setting the defaultContentType property.

    If the cacheDir property is set, this converter will cache image data.

    The process(ImageReadParam) and process(ImageWriteParam) template methods allow subclasses to override Image I/O parameters.

    Since:
    3.0
    Author:
    Arjen Poutsma
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      boolean canRead(java.lang.Class<?> clazz, MediaType mediaType)
      Indicates whether the given class can be read by this converter.
      boolean canWrite(java.lang.Class<?> clazz, MediaType mediaType)
      Indicates whether the given class can be written by this converter.
      MediaType getDefaultContentType()
      Returns the default Content-Type to be used for writing.
      java.util.List<MediaType> getSupportedMediaTypes()
      Return the list of MediaType objects supported by this converter.
      protected void process(javax.imageio.ImageReadParam irp)
      Template method that allows for manipulating the ImageReadParam before it is used to read an image.
      protected void process(javax.imageio.ImageWriteParam iwp)
      Template method that allows for manipulating the ImageWriteParam before it is used to write an image.
      java.awt.image.BufferedImage read(java.lang.Class<? extends java.awt.image.BufferedImage> clazz, HttpInputMessage inputMessage)
      Read an object of the given type from the given input message, and returns it.
      void setCacheDir(java.io.File cacheDir)
      Sets the cache directory.
      void setDefaultContentType(MediaType defaultContentType)
      Sets the default Content-Type to be used for writing.
      void write(java.awt.image.BufferedImage image, MediaType contentType, HttpOutputMessage outputMessage)
      Write an given object to the given output message.
      • Methods inherited from class java.lang.Object

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

      • BufferedImageHttpMessageConverter

        public BufferedImageHttpMessageConverter()
    • Method Detail

      • setDefaultContentType

        public void setDefaultContentType(@Nullable
                                          MediaType defaultContentType)
        Sets the default Content-Type to be used for writing.
        Throws:
        java.lang.IllegalArgumentException - if the given content type is not supported by the Java Image I/O API
      • setCacheDir

        public void setCacheDir(java.io.File cacheDir)
        Sets the cache directory. If this property is set to an existing directory, this converter will cache image data.
      • canRead

        public boolean canRead(java.lang.Class<?> clazz,
                               @Nullable
                               MediaType mediaType)
        Description copied from interface: HttpMessageConverter
        Indicates whether the given class can be read by this converter.
        Specified by:
        canRead in interface HttpMessageConverter<java.awt.image.BufferedImage>
        Parameters:
        clazz - the class to test for readability
        mediaType - the media type to read (can be null if not specified); typically the value of a Content-Type header.
        Returns:
        true if readable; false otherwise
      • canWrite

        public boolean canWrite(java.lang.Class<?> clazz,
                                @Nullable
                                MediaType mediaType)
        Description copied from interface: HttpMessageConverter
        Indicates whether the given class can be written by this converter.
        Specified by:
        canWrite in interface HttpMessageConverter<java.awt.image.BufferedImage>
        Parameters:
        clazz - the class to test for writability
        mediaType - the media type to write (can be null if not specified); typically the value of an Accept header.
        Returns:
        true if writable; false otherwise
      • read

        public java.awt.image.BufferedImage read(@Nullable
                                                 java.lang.Class<? extends java.awt.image.BufferedImage> clazz,
                                                 HttpInputMessage inputMessage)
                                          throws java.io.IOException,
                                                 HttpMessageNotReadableException
        Description copied from interface: HttpMessageConverter
        Read an object of the given type from the given input message, and returns it.
        Specified by:
        read in interface HttpMessageConverter<java.awt.image.BufferedImage>
        Parameters:
        clazz - the type of object to return. This type must have previously been passed to the canRead method of this interface, which must have returned true.
        inputMessage - the HTTP input message to read from
        Returns:
        the converted object
        Throws:
        java.io.IOException - in case of I/O errors
        HttpMessageNotReadableException - in case of conversion errors
      • write

        public void write(java.awt.image.BufferedImage image,
                          @Nullable
                          MediaType contentType,
                          HttpOutputMessage outputMessage)
                   throws java.io.IOException,
                          HttpMessageNotWritableException
        Description copied from interface: HttpMessageConverter
        Write an given object to the given output message.
        Specified by:
        write in interface HttpMessageConverter<java.awt.image.BufferedImage>
        Parameters:
        image - the object to write to the output message. The type of this object must have previously been passed to the canWrite method of this interface, which must have returned true.
        contentType - the content type to use when writing. May be null to indicate that the default content type of the converter must be used. If not null, this media type must have previously been passed to the canWrite method of this interface, which must have returned true.
        outputMessage - the message to write to
        Throws:
        java.io.IOException - in case of I/O errors
        HttpMessageNotWritableException - in case of conversion errors
      • process

        protected void process(javax.imageio.ImageReadParam irp)
        Template method that allows for manipulating the ImageReadParam before it is used to read an image.

        The default implementation is empty.

      • process

        protected void process(javax.imageio.ImageWriteParam iwp)
        Template method that allows for manipulating the ImageWriteParam before it is used to write an image.

        The default implementation is empty.