Image2D (object)

The Image2D is a base class for image types. The Image2D provides services for sampling images.

Image2D Image2D Image2D StatisticSourceWithAutoRegisterMember StatisticSourceWithAutoRegisterMember Image2D->StatisticSourceWithAutoRegisterMember Image2DColor Image2DColor Image2DColor->Image2D Image2DRGB Image2DRGB Image2DRGB->Image2D Image2DRGBA Image2DRGBA Image2DRGBA->Image2D Image2DScalar Image2DScalar Image2DScalar->Image2D

Members

String name The name of the image.
Size width the width of the image
Size height the height of the image
UInt32 version the current version number of the image
UInt32 flags A set of binary flags for the image.
StatisticsAutoRegisterMember autoStats A statistics collection member used to track memory usage throughout an application.
/*
** Example: Image2D
*/

require OpenImageIO;
require FileIO;
require Images;

function Boolean loadRGBAImageData(
  String filePath,
  io Image2DRGBA image
) {

  OpenImageInput oiimage = OpenImageInput();
  oiimage.open(filePath);
  if(oiimage.valid()) {
    OpenImageTypeDesc desc = OpenImageTypeDesc(OpenImage_BASETYPE_UINT8, OpenImage_AGGREGATE_SCALAR, OpenImage_VECSEMANTICS_NOXFORM);

    OpenImageSpec spec = oiimage.spec();
    image.resize(spec.get_full_width(), spec.get_full_height());
    Boolean success = false;
    if(spec.get_nchannels() == 4) {
      Data data = image.pixels.data();
      success = oiimage.read_image(desc, data, 0, 0, 0);
    } else if(spec.get_nchannels() == 3) {
      image.resize(image.width, image.height);
      Byte bytes[];
      bytes.resize(image.width * image.height * spec.get_nchannels());
      Data data = bytes.data();
      success = oiimage.read_image(desc, data, 0, 0, 0);
      if(success) {
        Size offset = 0;
        for(Size i=0;i< image.pixels.size();i++) {
          image.pixels[i].r = bytes[offset++];
          image.pixels[i].g = bytes[offset++];
          image.pixels[i].b = bytes[offset++];
          image.pixels[i].a = 255;
        }
      }
    }
    if(!success) {
      setError("Image2D '"+filePath+"' could not be converted to RGBA.");
    }
  }
  else {
    setError("Image2D '"+filePath+"' could not be opened!");
    return false;
  }
  return true;
}

operator entry() {

  FilePath inputPath = FilePath('${FABRIC_SCENE_GRAPH_DIR}/Python/Apps/Resources/Images/logo.png').expandEnvVars();

  Image2DRGBA image();
  loadRGBAImageData(inputPath.string(), image);

  // report some pixel
  for(Size i=1;i<5;i++)
    for(Size j=1;j<5;j++)
      report(image.sample(Scalar(i)/5.0, Scalar(j)/5.0));
}

/*
** Output:

{r:0,g:0,b:0,a:0}
{r:39,g:168,b:223,a:255}
{r:39,g:168,b:223,a:255}
{r:0,g:0,b:0,a:0}
{r:39,g:168,b:223,a:255}
{r:39,g:168,b:223,a:255}
{r:39,g:168,b:223,a:255}
{r:39,g:168,b:223,a:255}
{r:39,g:168,b:223,a:255}
{r:0,g:0,b:0,a:0}
{r:39,g:168,b:223,a:255}
{r:39,g:168,b:223,a:255}
{r:0,g:0,b:0,a:0}
{r:39,g:168,b:223,a:255}
{r:39,g:168,b:223,a:255}
{r:0,g:0,b:0,a:0}

*/

Methods

  Image2D ( in Image2D other )
  Image2D ()
Image2D clone ? ()
StatisticRecord[] getStatistics ? ()
  incrementVersion ! ()

Methods in detail

Image2D ( in Image2D other )

copy constructor


Image2D ()

default constructor


Image2D Image2D.clone? ()

clone method


StatisticRecord[] Image2D.getStatistics? ()

Implementation of StatisticSource interface’s ‘getStatistics()’.


Image2D.incrementVersion! ()