Class RMImageData

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class RMImageData
    extends java.lang.Object
    implements java.lang.Cloneable
    This class manages image data. Each instance holds the raw image data and provides methods to return attributes of the decoded image.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  RMImageData.ImageReader
      An interface for classes that can handle image reading for RMImageData.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static RMImageData EMPTY  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected RMImageData​(java.lang.Object aSource, int aPageIndex)
      Returns an image data for a given source and page index.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean canRead​(java.lang.String anExt)
      Returns whether given extension is supported.
      RMImageData clone()
      Standard clone implementation.
      protected byte[] createBytes()
      Creates bytes from the image (loaded from the source).
      protected void createBytesDecoded()
      Creates decoded image bytes for the image.
      protected java.awt.image.BufferedImage createImage()
      Creates a buffered image for image data.
      boolean equals​(java.lang.Object anObj)
      Standard equals implementation.
      int getAlphaColorIndex()
      Color map support: returns the index of the transparent color in a color map image.
      int getBitsPerPixel()
      Returns the number of bits per pixel (derived from bits per sample and samples per pixel).
      int getBitsPerSample()
      Returns the number of bits per sample (eg, 24 bit RGB image is 8 bits per sample).
      byte[] getBytes()
      Returns the original bytes for the image (loaded from the source).
      byte[] getBytesDecoded()
      Returns the decoded image bytes for the image.
      int getBytesPerRow()
      Returns the number of bytes per row (derived from width and bits per pixel).
      byte[] getColorMap()
      Color map support: returns the bytes of color map from a color map image.
      int getHeight()
      Returns the number of pixels vertically.
      java.awt.image.BufferedImage getImage()
      Returns the buffered image for image data.
      static RMImageData getImageData​(java.lang.Object aSource)
      Returns an image data loaded from aSource.
      static RMImageData getImageData​(java.lang.Object aSource, int aPageIndex)
      Returns an image data loaded from aSource.
      double getImageHeight()
      Returns the actual display height of the image in printer's points using the image DPI if available.
      double getImageWidth()
      Returns the actual display width of the image in printer's points using the image DPI if available.
      java.lang.String getName()
      Returns the name for the image (assigned from our hashCode).
      RMImageData getPage​(int aPage)
      Returns the image data for a successive page.
      int getPageCount()
      Returns the total number of pages for the image.
      int getPageIndex()
      Returns the page index for the image.
      RMImageData.ImageReader getReader()
      Returns the reader used to load the image.
      int getSamplesPerPixel()
      Returns the number of samples per pixel (RGB=3, RGBA=4, GrayScale=1, etc.).
      java.lang.Object getSource()
      Returns the original source for the image (byte[], File, InputStream or whatever).
      WebURL getSourceURL()
      Returns the source URL, if loaded from URL.
      java.lang.String getType()
      Returns the type for the image (one of gif, jpg, png, pdf, etc.).
      int getWidth()
      Returns the number of pixels horizontally.
      boolean hasAlpha()
      Color map support: returns whether color map image has a transparent color.
      boolean hasColorMap()
      Returns whether image uses a color map.
      boolean isColor()
      Returns whether the image is non-grayscale.
      boolean isValid()
      Returns whether the image was loaded successfully.
      void paint​(RMShapePainter aPntr, double x, double y, double w, double h)
      Draws image data in given rect.
      protected void refresh()
      Refreshes data from source.
      protected void setSource​(java.lang.Object aSource, int aPageIndex)
      Sets the source.
      • Methods inherited from class java.lang.Object

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

      • RMImageData

        protected RMImageData​(java.lang.Object aSource,
                              int aPageIndex)
        Returns an image data for a given source and page index. Source can be an image or something that can provide bytes. Page index only applicable for multi-page image types, like PDF.
    • Method Detail

      • getImageData

        public static RMImageData getImageData​(java.lang.Object aSource)
        Returns an image data loaded from aSource.
      • getImageData

        public static RMImageData getImageData​(java.lang.Object aSource,
                                               int aPageIndex)
        Returns an image data loaded from aSource. If image type supports multiple pages, page index can be specified.
      • getSource

        public java.lang.Object getSource()
        Returns the original source for the image (byte[], File, InputStream or whatever).
      • setSource

        protected void setSource​(java.lang.Object aSource,
                                 int aPageIndex)
        Sets the source.
      • getSourceURL

        public WebURL getSourceURL()
        Returns the source URL, if loaded from URL.
      • refresh

        protected void refresh()
        Refreshes data from source.
      • getImage

        public java.awt.image.BufferedImage getImage()
        Returns the buffered image for image data.
      • createImage

        protected java.awt.image.BufferedImage createImage()
        Creates a buffered image for image data.
      • getBytes

        public byte[] getBytes()
        Returns the original bytes for the image (loaded from the source).
      • createBytes

        protected byte[] createBytes()
        Creates bytes from the image (loaded from the source).
      • getBytesDecoded

        public byte[] getBytesDecoded()
        Returns the decoded image bytes for the image.
      • createBytesDecoded

        protected void createBytesDecoded()
        Creates decoded image bytes for the image.
      • getName

        public java.lang.String getName()
        Returns the name for the image (assigned from our hashCode).
      • getType

        public java.lang.String getType()
        Returns the type for the image (one of gif, jpg, png, pdf, etc.).
      • getPageIndex

        public int getPageIndex()
        Returns the page index for the image.
      • getPageCount

        public int getPageCount()
        Returns the total number of pages for the image.
      • getWidth

        public int getWidth()
        Returns the number of pixels horizontally.
      • getHeight

        public int getHeight()
        Returns the number of pixels vertically.
      • getImageWidth

        public double getImageWidth()
        Returns the actual display width of the image in printer's points using the image DPI if available.
      • getImageHeight

        public double getImageHeight()
        Returns the actual display height of the image in printer's points using the image DPI if available.
      • isColor

        public boolean isColor()
        Returns whether the image is non-grayscale.
      • getSamplesPerPixel

        public int getSamplesPerPixel()
        Returns the number of samples per pixel (RGB=3, RGBA=4, GrayScale=1, etc.).
      • getBitsPerSample

        public int getBitsPerSample()
        Returns the number of bits per sample (eg, 24 bit RGB image is 8 bits per sample).
      • getBitsPerPixel

        public int getBitsPerPixel()
        Returns the number of bits per pixel (derived from bits per sample and samples per pixel).
      • getBytesPerRow

        public int getBytesPerRow()
        Returns the number of bytes per row (derived from width and bits per pixel).
      • hasAlpha

        public boolean hasAlpha()
        Color map support: returns whether color map image has a transparent color.
      • getAlphaColorIndex

        public int getAlphaColorIndex()
        Color map support: returns the index of the transparent color in a color map image.
      • hasColorMap

        public boolean hasColorMap()
        Returns whether image uses a color map.
      • getColorMap

        public byte[] getColorMap()
        Color map support: returns the bytes of color map from a color map image.
      • getPage

        public RMImageData getPage​(int aPage)
        Returns the image data for a successive page.
      • isValid

        public boolean isValid()
        Returns whether the image was loaded successfully.
      • equals

        public boolean equals​(java.lang.Object anObj)
        Standard equals implementation.
        Overrides:
        equals in class java.lang.Object
      • clone

        public RMImageData clone()
        Standard clone implementation.
        Overrides:
        clone in class java.lang.Object
      • canRead

        public static boolean canRead​(java.lang.String anExt)
        Returns whether given extension is supported.
      • paint

        public void paint​(RMShapePainter aPntr,
                          double x,
                          double y,
                          double w,
                          double h)
        Draws image data in given rect.