-
-
Notifications
You must be signed in to change notification settings - Fork 33
dlib.image.image
This module implements raster image classes. Note that floating point image class is defined in a separate module, dlib.image.hdri.
An enum that holds supported pixel formats:
-
PixelFormat.L8
- 8-bit luminance -
PixelFormat.LA8
- 8-bit luminance/alpha -
PixelFormat.RGB8
- 8-bit RGB -
PixelFormat.RGBA8
- 8-bit RGBA -
PixelFormat.L16
- 16-bit luminance -
PixelFormat.LA16
- 16-bit luminance/alpha -
PixelFormat.RGB16
- 16-bit RGB -
PixelFormat.RGBA16
- 16-bit RGBA -
PixelFormat.RGBA_FLOAT
- 32-bit floating point RGBA
Defines generalized interface of an image that abstracts from specific pixel format. It is recommended to use SuperImage when implementing new filters.
Properties:
-
uint width
- width of an image in pixels -
uint height
- height of an image in pixels -
uint channels
- number of channels per pixel -
uint bitDepth
- bits per channel -
uint pixelSize
- size of a pixel in bytes -
PixelFormat pixelFormat
- pixel format -
ubyte[] data
- raw pixel data -
auto row
- a range that represents 0..width (a row) -
auto col
- a range that represents 0..height (a column)
Methods:
-
SuperImage dup()
- create a copy of the image -
SuperImage createSameFormat(uint w, uint h)
- create a blank image of the same format and with specified width and height
Operators:
-
Color4f opIndex(int x, int y)
- read a pixel with subscript (square bracket) syntax (e.g.color = img[x, y]
) -
Color4f opIndexAssign(Color4f c, int x, int y)
- write a pixel with subscript (square bracket) syntax (e.g.img[x, y] = color
)
Usage example:
/*
* Create an image using a factory
* and draw a red pixel at position 100, 100
*/
SuperImage img = image(320, 240);
img[100, 100] = Color4f(1.0f, 0.0f, 0.0f);
A class template that derives from SuperImage and implements a corresponding image type for each supported integer pixel format:
-
Image!(PixelFormat.L8)
- aliased asImageL8
-
Image!(PixelFormat.LA8)
-ImageLA8
-
Image!(PixelFormat.RGB8)
-ImageRGB8
-
Image!(PixelFormat.RGBA8)
-ImageRGBA8
-
Image!(PixelFormat.L16)
-ImageL16
-
Image!(PixelFormat.LA16)
-ImageLA16
-
Image!(PixelFormat.RGB16)
-ImageRGB16
-
Image!(PixelFormat.RGBA16)
-ImageRGBA16
Methods:
Color4 setPixel(Color4 col, int x, int y)
Color4 getPixel(int x, int y)
set and get a pixel using an integer color value. This methods are used internally by subscript operator after converting floating-point color to appropriate pixel format. They are made public for optimization reasons, but generally they are not preferred/idiomatic way of accessing image data - use subscript operator instead.
-
SuperImage image(uint w, uint h, uint channels = 3, uint bitDepth = 8)
- all-in-one image factory function -
T convert(T)(SuperImage img)
- Convert image to specified pixel format. T stands for image type (e.g.ImageRGB8
,ImageRGBA16
etc.)