Class TransfertRectIter

  • All Implemented Interfaces:
    RectIter, WritableRectIter

    public final class TransfertRectIter
    extends Object
    implements WritableRectIter
    A writable iterator that read pixel values from an image, and write pixel values to a different image. All get methods read values from the source image specified at creation time. All set methods write values to the destination image specified at creation time, which may or may not be the same than the source image. This is different than the usual WritableRectIter contract, which read and write values in the same image. This TransfertRectIter is convenient for the implementation of some image operations.
    Since:
    2.3
    Author:
    Martin Desruisseaux (IRD)
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static WritableRectIter create​(RectIter src, WritableRectIter dst)
      Creates a WritableRectIter for the specified source and destination iterator.
      boolean finishedBands()
      Returns true if the max band in the image has been exceeded.
      boolean finishedLines()
      Returns true if the bottom row of the bounding rectangle has been passed.
      boolean finishedPixels()
      Returns true if the right edge of the bounding rectangle has been passed.
      double[] getPixel​(double[] array)
      Returns the samples of the current pixel from the image in an array of double.
      float[] getPixel​(float[] array)
      Returns the samples of the current pixel from the image in an array of float.
      int[] getPixel​(int[] array)
      Returns the samples of the current pixel from the image in an array of int.
      int getSample()
      Returns the current sample as an integer.
      int getSample​(int b)
      Returns the specified sample of the current pixel as an integer.
      double getSampleDouble()
      Returns the current sample as a double.
      double getSampleDouble​(int b)
      Returns the specified sample of the current pixel as a double.
      float getSampleFloat()
      Returns the current sample as a float.
      float getSampleFloat​(int b)
      Returns the specified sample of the current pixel as a float.
      void jumpLines​(int num)
      Jumps downward num lines from the current position.
      void jumpPixels​(int num)
      Jumps rightward num pixels from the current position.
      void nextBand()
      Sets the iterator to the next band in the image.
      boolean nextBandDone()
      Sets the iterator to the next band in the image, and returns true if the max band has been exceeded.
      void nextLine()
      Sets the iterator to the next line of the image.
      boolean nextLineDone()
      Sets the iterator to the next line in the image, and returns true if the bottom row of the bounding rectangle has been passed.
      void nextPixel()
      Sets the iterator to the next pixel in image (that is, move rightward).
      boolean nextPixelDone()
      Sets the iterator to the next pixel in the image (that is, move rightward).
      void setPixel​(double[] array)
      Sets all samples of the current pixel to a set of double values.
      void setPixel​(float[] array)
      Sets all samples of the current pixel to a set of float values.
      void setPixel​(int[] array)
      Sets all samples of the current pixel to a set of int values.
      void setSample​(double s)
      Sets the current sample to a double value.
      void setSample​(float s)
      Sets the current sample to a float value.
      void setSample​(int s)
      Sets the current sample to an integral value.
      void setSample​(int b, double s)
      Sets the specified sample of the current pixel to a double value.
      void setSample​(int b, float s)
      Sets the specified sample of the current pixel to a float value.
      void setSample​(int b, int s)
      Sets the specified sample of the current pixel to an integral value.
      void startBands()
      Sets the iterator to the first band of the image.
      void startLines()
      Sets the iterator to the first line of its bounding rectangle.
      void startPixels()
      Sets the iterator to the leftmost pixel of its bounding rectangle.
    • Method Detail

      • create

        public static WritableRectIter create​(RectIter src,
                                              WritableRectIter dst)
        Creates a WritableRectIter for the specified source and destination iterator. The two iterators must iterate over a rectangle of the same size, otherwise a RasterFormatException may be thrown during the iteration.
        Parameters:
        src - The source iterator.
        dst - The destination iterator.
        Returns:
        An iterator that read sample from src and write sample to dst. If src == dst, then the destination iterator itself is returned.
      • startLines

        public void startLines()
        Sets the iterator to the first line of its bounding rectangle.
        Specified by:
        startLines in interface RectIter
      • startPixels

        public void startPixels()
        Sets the iterator to the leftmost pixel of its bounding rectangle.
        Specified by:
        startPixels in interface RectIter
      • startBands

        public void startBands()
        Sets the iterator to the first band of the image.
        Specified by:
        startBands in interface RectIter
      • jumpLines

        public void jumpLines​(int num)
        Jumps downward num lines from the current position.
        Specified by:
        jumpLines in interface RectIter
      • jumpPixels

        public void jumpPixels​(int num)
        Jumps rightward num pixels from the current position.
        Specified by:
        jumpPixels in interface RectIter
      • nextLine

        public void nextLine()
        Sets the iterator to the next line of the image.
        Specified by:
        nextLine in interface RectIter
      • nextPixel

        public void nextPixel()
        Sets the iterator to the next pixel in image (that is, move rightward).
        Specified by:
        nextPixel in interface RectIter
      • nextBand

        public void nextBand()
        Sets the iterator to the next band in the image.
        Specified by:
        nextBand in interface RectIter
      • nextLineDone

        public boolean nextLineDone()
        Sets the iterator to the next line in the image, and returns true if the bottom row of the bounding rectangle has been passed.
        Specified by:
        nextLineDone in interface RectIter
      • nextPixelDone

        public boolean nextPixelDone()
        Sets the iterator to the next pixel in the image (that is, move rightward).
        Specified by:
        nextPixelDone in interface RectIter
      • nextBandDone

        public boolean nextBandDone()
        Sets the iterator to the next band in the image, and returns true if the max band has been exceeded.
        Specified by:
        nextBandDone in interface RectIter
      • finishedLines

        public boolean finishedLines()
        Returns true if the bottom row of the bounding rectangle has been passed.
        Specified by:
        finishedLines in interface RectIter
      • finishedPixels

        public boolean finishedPixels()
        Returns true if the right edge of the bounding rectangle has been passed.
        Specified by:
        finishedPixels in interface RectIter
      • finishedBands

        public boolean finishedBands()
        Returns true if the max band in the image has been exceeded.
        Specified by:
        finishedBands in interface RectIter
      • getPixel

        public int[] getPixel​(int[] array)
        Returns the samples of the current pixel from the image in an array of int.
        Specified by:
        getPixel in interface RectIter
      • getPixel

        public float[] getPixel​(float[] array)
        Returns the samples of the current pixel from the image in an array of float.
        Specified by:
        getPixel in interface RectIter
      • getPixel

        public double[] getPixel​(double[] array)
        Returns the samples of the current pixel from the image in an array of double.
        Specified by:
        getPixel in interface RectIter
      • getSample

        public int getSample()
        Returns the current sample as an integer.
        Specified by:
        getSample in interface RectIter
      • getSample

        public int getSample​(int b)
        Returns the specified sample of the current pixel as an integer.
        Specified by:
        getSample in interface RectIter
      • getSampleFloat

        public float getSampleFloat()
        Returns the current sample as a float.
        Specified by:
        getSampleFloat in interface RectIter
      • getSampleFloat

        public float getSampleFloat​(int b)
        Returns the specified sample of the current pixel as a float.
        Specified by:
        getSampleFloat in interface RectIter
      • getSampleDouble

        public double getSampleDouble()
        Returns the current sample as a double.
        Specified by:
        getSampleDouble in interface RectIter
      • getSampleDouble

        public double getSampleDouble​(int b)
        Returns the specified sample of the current pixel as a double.
        Specified by:
        getSampleDouble in interface RectIter
      • setPixel

        public void setPixel​(int[] array)
        Sets all samples of the current pixel to a set of int values.
        Specified by:
        setPixel in interface WritableRectIter
      • setPixel

        public void setPixel​(float[] array)
        Sets all samples of the current pixel to a set of float values.
        Specified by:
        setPixel in interface WritableRectIter
      • setPixel

        public void setPixel​(double[] array)
        Sets all samples of the current pixel to a set of double values.
        Specified by:
        setPixel in interface WritableRectIter
      • setSample

        public void setSample​(int s)
        Sets the current sample to an integral value.
        Specified by:
        setSample in interface WritableRectIter
      • setSample

        public void setSample​(float s)
        Sets the current sample to a float value.
        Specified by:
        setSample in interface WritableRectIter
      • setSample

        public void setSample​(double s)
        Sets the current sample to a double value.
        Specified by:
        setSample in interface WritableRectIter
      • setSample

        public void setSample​(int b,
                              int s)
        Sets the specified sample of the current pixel to an integral value.
        Specified by:
        setSample in interface WritableRectIter
      • setSample

        public void setSample​(int b,
                              float s)
        Sets the specified sample of the current pixel to a float value.
        Specified by:
        setSample in interface WritableRectIter
      • setSample

        public void setSample​(int b,
                              double s)
        Sets the specified sample of the current pixel to a double value.
        Specified by:
        setSample in interface WritableRectIter