Class PDFTiledImage

java.lang.Object
com.inductiveautomation.rm.pdf.reader.PDFTiledImage
All Implemented Interfaces:
ImageConsumer

public class PDFTiledImage extends Object implements ImageConsumer
This class handles drawing images as tiles, for when allocating a BufferedImage for the entire pdf image would be too expensive. It implements ImageConsumer, and assumes that it will be passes an ImageProducer that knows how to generate itself top-down/left-right.

It keeps a BufferedImage only as large as a single tile. When drawImage() is called, the imageProducer is told to generate the image data. As soon as a single tile is filled, it is drawn and the Buffer is reused for the next tile. We could cut out the imageProducer middle-man and just go directly from the codec...

  • Constructor Details

    • PDFTiledImage

      public PDFTiledImage()
  • Method Details

    • getTileHeight

      public int getTileHeight()
      Returns the height of the tile (it's a strip)
    • getWidth

      public int getWidth()
      Returns the width of the entire image.
    • getHeight

      public int getHeight()
      Returns the height of the entire image.
    • imageComplete

      public void imageComplete(int status)
      ImageConsumer method. Releases the tile.
      Specified by:
      imageComplete in interface ImageConsumer
    • setHints

      public void setHints(int hintflags)
      Specified by:
      setHints in interface ImageConsumer
    • setColorModel

      public void setColorModel(ColorModel model)
      Specified by:
      setColorModel in interface ImageConsumer
    • setDimensions

      public void setDimensions(int width, int height)
      ImageConsumer method. Assumption is that this will be called before any calls to setPixels()
      Specified by:
      setDimensions in interface ImageConsumer
    • getTileBuffer

      public WritableRaster getTileBuffer()
    • setPixels

      public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
      Specified by:
      setPixels in interface ImageConsumer
    • setPixels

      public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
      Specified by:
      setPixels in interface ImageConsumer
    • setProperties

      public void setProperties(Hashtable props)
      Specified by:
      setProperties in interface ImageConsumer
    • drawImage

      public void drawImage(ImageProducer ip, Graphics2D destination)
      The main entry point. Images are drawn at 0,0 so destination should have the image transform applied to it.
    • drawTiledImage

      public static void drawTiledImage(ImageProducer ip, Graphics2D destination)