RasterRangesUtils (JNA API)
Description: declaration: package: com.sun.jna.platform, class: RasterRangesUtils

Package com.sun.jna.platform

# Class RasterRangesUtils

java.lang.Object
com.sun.jna.platform.RasterRangesUtils

public class RasterRangesUtils extends Object
Methods that are useful to decompose a raster into a set of rectangles. An occupied pixel has two possible meanings, depending on the raster :

- if the raster has an alpha layer, occupied means with alpha not null
- if the raster doesn't have any alpha layer, occupied means not completely black

Author:
  Olivier Chafik

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static interface`
  `RasterRangesUtils.RangesOutput`
  Abstraction of a sink for ranges.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RasterRangesUtils()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static boolean`
  `outputOccupiedRanges(int[] pixels, int w, int h, int occupationMask, RasterRangesUtils.RangesOutput out)`
  Output the occupied values of an integer-pixels image as ranges of contiguous values.
  `static boolean`
  `outputOccupiedRanges(Raster raster, RasterRangesUtils.RangesOutput out)`
  Outputs ranges of occupied pixels.
  `static boolean`
  `outputOccupiedRangesOfBinaryPixels(byte[] binaryBits, int w, int h, RasterRangesUtils.RangesOutput out)`
  Output the non-null values of a binary image as ranges of contiguous values.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### RasterRangesUtils

    public RasterRangesUtils()

- ## Method Details

  - ### outputOccupiedRanges

    public static boolean outputOccupiedRanges(Raster raster, RasterRangesUtils.RangesOutput out)
    Outputs ranges of occupied pixels. In a raster that has an alpha layer, a pixel is occupied if its alpha value is not null. In a raster without alpha layer, a pixel is occupied if it is not completely black.
    Parameters:
      `raster` - image to be segmented in non black or non-transparent ranges
      `out` - destination of the non null ranges
    Returns:
      true if the output succeeded, false otherwise

  - ### outputOccupiedRangesOfBinaryPixels

    public static boolean outputOccupiedRangesOfBinaryPixels(byte[] binaryBits, int w, int h, RasterRangesUtils.RangesOutput out)
    Output the non-null values of a binary image as ranges of contiguous values.
    Parameters:
      `binaryBits` - byte-packed binary bits of an image
      `w` - width of the image (in pixels)
      `h` - height of the image
      `out` -
    Returns:
      true if the output succeeded, false otherwise

  - ### outputOccupiedRanges

    public static boolean outputOccupiedRanges(int[] pixels, int w, int h, int occupationMask, RasterRangesUtils.RangesOutput out)
    Output the occupied values of an integer-pixels image as ranges of contiguous values. A pixel is considered occupied if the bitwise AND of its integer value with the provided occupationMask is not null.
    Parameters:
      `pixels` - integer values of the pixels of an image
      `w` - width of the image (in pixels)
      `h` - height of the image
      `occupationMask` - mask used to select which bits are used in a pixel to check its occupied status. 0xff000000 would only take the alpha layer into account, for instance.
      `out` - where to output all the contiguous ranges of non occupied pixels
    Returns:
      true if the output succeeded, false otherwise