create_image3 ( : ImageRGB : Type, Width, Height, PixelPointerRed, PixelPointerGreen, PixelPointerBlue : )

Create an image from three pointers to the pixels.

The operator create_image3 creates a three-channel image of the size Width * Height. The pixels in PixelPointerRed, PixelPointerGreen and PixelPointerBlue are stored line-sequentially. The type of the given pixels (PixelPointerRed etc.) must correspond to the name of the pixels (Type). The storage for the new image is newly created by HORUS Thus, it can be released after the call. Since the type of the parameters (PixelPointerRed etc.) is generic (long) a "cast" must be used for the call.


Parameters

ImageRGB (output_object)
image -> object
Created image with new image matrix.

Type (input_control)
string -> string
Pixel type
Default value: 'byte'
List of values: 'int1', 'int2', 'int4', 'byte', 'real', 'direction', 'cyclic'

Width (input_control)
extent.x -> integer
Width of image
Default value: 512
Suggested values: 128, 256, 512, 1024
Range of values: 1 <= Width <= 512 (lin)
Minimum increment: 1
Recommended increment: 10

Height (input_control)
extent.y -> integer
Height of image
Default value: 512
Suggested values: 128, 256, 512, 1024
Range of values: 1 <= Height <= 512 (lin)
Minimum increment: 1
Recommended increment: 10

PixelPointerRed (input_control)
integer -> integer
Pointer to first gray value (channel 1)

PixelPointerGreen (input_control)
integer -> integer
Pointer to first gray value (channel 2)

PixelPointerBlue (input_control)
integer -> integer
Pointer to first gray value (channel 3)


Example
void NewRGBImage(ObjType *new)
{
  unsigned char  red[768*525];
  unsigned char  green[768*525];
  unsigned char  blue[768*525];
  int            r,c;
  for (r=0; r<525; r++)
    for (c=0; c<768; c++)
    {
      red[r*768+c]   = c % 255;
      green[r*768+c] = (767 - c) % 255;
      blue[r*768+c]  = r % 255;
    }
  create_image3(new,"byte",768,525,(long)red,(long)green,(long)blue);
}

main()
{
  ObjType  rgb;
  open_window(0,0,768,525,0,"","");
  NewRGBImage(&rgb);
  disp_color(rgb);
  clear(rgb);
}

Result

If the parameter values are correct, the operator create_image3 returns the value TRUE. Otherwise an exception is raised.


Possible Predecessors

new_image__, get_image_pointer__


Possible Successors

disp_color


Alternatives

create_image, compose3, new_image__


See also

reduce_domain, paint_grey__, paint_region__, set_greyval__, get_image_pointer__, decompose3



Copyright © 1996-1997 MVTec Software GmbH