Zen API
 All Classes Files Functions Variables Typedefs Friends Macros Modules Pages
kImage Class Reference

Description

Represents a 2D collection of pixels.

The kImage class is similar to the kArray2 class, with some important differences:

  • By default, image memory is allocated such that rows are aligned to 8-byte boundaries.
  • Pixels are limited to value types.
  • Image indices/dimensions are given in (column, row) rather than (row, column) order.
  • kImage contains additional image-specific attributes (e.g. color filter array type).

In particular, the row-alignment behaviour means that image memory should typically be accessed by getting a pointer to the beginning of a row, and then iterating over pixels. E.g.

kSize height = kImage_Height(image);
kSize width = kImage_Width(image);
kSize i, j;
k32u sum = 0;
for (i = 0; i < height; ++i)
{
k8u* row = kImage_RowAt(image, i);
for (j = 0; j < width; ++j)
{
sum += row[j];
}
}

kImage supports the kObject_Clone and kObject_Size methods.

kImage supports the kdat5 and kdat6 serialization protocols.

Inheritance diagram for kImage:
Inheritance graph

Public Member Functions

kStatus kImage_Allocate (kImage image, kType pixelType, kSize width, kSize height)
 Reallocates the internal pixel buffer. More...
 
kSize kImage_Area (kImage image)
 Returns the area of the image, in pixels. More...
 
kStatus kImage_Assign (kImage image, kImage source)
 Copies a given source image into this image. More...
 
void * kImage_At (kImage image, kSize x, kSize y)
 Returns a pointer to the specified pixel in the pixel buffer. More...
 
kStatus kImage_Attach (kImage image, void *pixels, kType pixelType, kSize width, kSize height, kSize stride)
 Attaches the image to an external pixel buffer. More...
 
kCfa kImage_Cfa (kImage image)
 Gets the color filter array type associated with this image. More...
 
kStatus kImage_Construct (kImage *image, kType pixelType, kSize width, kSize height, kAlloc allocator)
 Constructs a kImage object. More...
 
kStatus kImage_ConstructEx (kImage *image, kType pixelType, kSize width, kSize height, kAlloc allocator, kAlloc dataAllocator)
 Constructs a kImage object using a separate allocator for image array memory. More...
 
void * kImage_Data (kImage image)
 Returns a pointer to the first row in the pixel buffer. More...
 
kAlloc kImage_DataAlloc (kImage image)
 Reports the data allocator that was optionally provided at construction time. More...
 
void * kImage_DataAt (kImage image, kSSize x, kSSize y)
 Calculates an address relative to the start of the pixel buffer. More...
 
kSize kImage_DataSize (kImage image)
 Reports the size, in bytes, of the pixel buffer. More...
 
kStatus kImage_Export (kImage image, const kChar *fileName)
 Saves an image to file. More...
 
kSize kImage_Height (kImage image)
 Returns the height of the image, in pixels. More...
 
kStatus kImage_Import (kImage *image, const kChar *fileName, kAlloc allocator)
 Loads an image from file. More...
 
kStatus kImage_Pixel (kImage image, kSize x, kSize y, void *pixel)
 Gets the value of a pixel. More...
 
kPixelFormat kImage_PixelFormat (kImage image)
 Gets the optional pixel format descriptor associated with this image. More...
 
kSize kImage_PixelSize (kImage image)
 Returns the pixel size. More...
 
kType kImage_PixelType (kImage image)
 Returns the pixel type. More...
 
void * kImage_RowAt (kImage image, kSize y)
 Returns a pointer to the specified row in the pixel buffer. More...
 
kStatus kImage_SetCfa (kImage image, kCfa cfa)
 Sets the color filter array type associated with this image. More...
 
kStatus kImage_SetPixel (kImage image, kSize x, kSize y, const void *pixel)
 Sets the value of a pixel. More...
 
kStatus kImage_SetPixelFormat (kImage image, kPixelFormat format)
 Sets the optional pixel format descriptor associated with this image. More...
 
kSize kImage_Stride (kImage image)
 Returns the size of an image row, including alignment padding bytes, in bytes. More...
 
kSize kImage_Width (kImage image)
 Returns the width of the image, in pixels. More...
 
kStatus kImage_Zero (kImage image)
 Sets all pixel bits to zero. More...
 
- Public Member Functions inherited from kObject
kAlloc kObject_Alloc (kObject object)
 Gets the memory allocator associated with this object. More...
 
kStatus kObject_Clone (kObject *object, kObject source, kAlloc allocator)
 Constructs a new object by copying an existing object, including any aggregated child elements. More...
 
kStatus kObject_Destroy (kObject object)
 Destroys the object. More...
 
kStatus kObject_Dispose (kObject object)
 Destroys the object and any aggregated child elements. More...
 
kBool kObject_Equals (kObject object, kObject other)
 Determines whether the object is equal to another object. More...
 
kBool kObject_HasForeignData (kObject object)
 Reports whether the object, including aggregated child elements, contains any foreign memory references. More...
 
kSize kObject_HashCode (kObject object)
 Gets a hash code representing the state of this object. More...
 
kBool kObject_Is (kObject object, kType type)
 Determines whether this object is an instance of the specified type. More...
 
kBool kObject_IsShared (kObject object)
 Reports whether the object is currently shared (reference count greater than one). More...
 
kStatus kObject_SetPool (kObject object, kObjectPool pool)
 Sets the object pool associated with this object. More...
 
kStatus kObject_Share (kObject object)
 Increments the reference count associated with this object. More...
 
kSize kObject_Size (kObject object)
 Estimates the memory consumed by this object, including any aggregated child elements. More...
 
kType kObject_Type (kObject object)
 Returns the type of the object. More...
 

Related

#define kImage_AsT(kImage_image, kSize_x, kSize_y, T)
 Gets the value of a pixel. More...
 
#define kImage_AtT(kImage_image, kSize_x, kSize_y, T)
 Returns a strongly-typed pointer to the specified pixel in the pixel buffer. More...
 
#define kImage_AttachT(kImage_image, TPtr_pixels, kType_pixelType, kSize_width, kSize_height, kSize_stride)
 Attaches the image to an external pixel buffer. More...
 
#define kImage_DataAtT(kImage_image, kSSize_x, kSSize_y, T)
 Calculates an address relative to the start of the pixel buffer. More...
 
#define kImage_DataT(kImage_image, T)
 Returns a strongly-typed pointer to the first row in the pixel buffer. More...
 
#define kImage_PixelT(kImage_image, kSize_x, kSize_y, TPtr_pixel)
 Gets the value of a pixel. More...
 
#define kImage_RowAtT(kImage_image, kSize_y, T)
 Returns a strongly-typed pointer to the specified row in the pixel buffer. More...
 
#define kImage_SetAsT(kImage_image, kSize_x, kSize_y, T_value, T)
 Sets the value of a pixel. More...
 
#define kImage_SetPixelT(kImage_image, kSize_x, kSize_y, TPtr_pixel)
 Sets the value of a pixel. More...
 

Additional Inherited Members

- Protected Member Functions inherited from kObject
kStatus kObject_FreeMem (kObject object, void *mem)
 Protected method called by derived classes to free memory using the object's allocator. More...
 
kStatus kObject_FreeMemRef (kObject object, void *mem)
 Protected method called by derived classes to free memory (and reset the provided memory pointer to kNULL) using the object's allocator. More...
 
kStatus kObject_GetMem (kObject object, kSize size, void *mem)
 Protected method called by derived classes to allocate memory using the object's allocator. More...
 
kStatus kObject_GetMemZero (kObject object, kSize size, void *mem)
 Protected method called by derived classes to allocate and zero memory using the object's allocator. More...
 
kStatus kObject_Init (kObject object, kType type, kAlloc alloc)
 Protected method called by derived classes to initialize the kObject base class. More...
 
kStatus kObject_VDisposeItems (kObject object)
 Protected virtual method that destroys any aggregated child objects associated with a collection. More...
 
kBool kObject_VEquals (kObject object, kObject other)
 Protected virtual method that compares two objects for equality. More...
 
kBool kObject_VHasForeignData (kObject object)
 Protected virtual method that reports whether the object, including aggregated child elements, contains any foreign memory references. More...
 
kSize kObject_VHashCode (kObject object)
 Protected virtual method that calculates a hash code representing the object instance. More...
 
kStatus kObject_VInitClone (kObject object, kObject source, kAlloc allocator)
 Protected virtual method that clones (makes a deep copy of) the specified source object. More...
 
kStatus kObject_VRelease (kObject object)
 Protected virtual method that deallocates any resources owned by the object. More...
 
kSize kObject_VSize (kObject object)
 Protected virtual method that calculates the total size (in bytes) of the object instance. More...
 

The documentation for this class was generated from the following file: