Class for containing raw images. More...
Public Types | |
enum | eFlags { FLAGS_IMAGENOTALLOCATED =0x0020 , FLAGS_MIPMAPMASK =0x001F } |
enum | ePixelTypes { PIXELTYPE1BIT =1 , PIXELTYPE2BIT =2 , PIXELTYPE4BIT =4 , PIXELTYPE332 =7 , PIXELTYPE8BIT =8 , PIXELTYPE4444 =13 , PIXELTYPE1555 =14 , PIXELTYPE555 =15 , PIXELTYPE565 =16 , PIXELTYPEDXT1 =17 , PIXELTYPEDXT2 =18 , PIXELTYPEDXT3 =19 , PIXELTYPEDXT4 =20 , PIXELTYPEDXT5 =21 , PIXELTYPE888 =24 , PIXELTYPE1010102 =31 , PIXELTYPE8888 =32 } |
Pixel data type. More... | |
Public Member Functions | |
Image () | |
Default constructor. | |
~Image () | |
Default destructor. | |
void | Init (uint_t uWidth, uint_t uHeight, ePixelTypes eType, uintptr_t uStride, const uint8_t *pImage, uint_t uFlags=0, uint_t uMipMaps=0) |
Manually initialize an Image. | |
uint_t | Init (uint_t uWidth, uint_t uHeight, ePixelTypes eType) |
Allocates memory suitable for an image. | |
uint_t | Init (uint_t uWidth, uint_t uHeight, ePixelTypes eType, uint_t uMipMaps) |
Allocates memory suitable for an image and its mipmaps. | |
uint_t | Init (const Image *pInput) |
Make a copy of an image. | |
uint_t | InitPNG (InputMemoryStream *pInput, RGBAWord8_t *pPalette=0) |
Initialize an Image from a PNG file stream. | |
uint_t | InitPNG (const char *pFilename, RGBAWord8_t *pPalette=0) |
Initialize an Image from a PNG file. | |
uint_t | InitPNG (Filename *pFilename, RGBAWord8_t *pPalette=0) |
Initialize an Image from a PNG file. | |
uint_t | InitPNG (RezFile *pRezFile, uint_t uRezNum, RGBAWord8_t *pPalette=0) |
Initialize an Image from a PNG file. | |
uint_t | InitGIF (InputMemoryStream *pInput, RGBAWord8_t *pPalette=0) |
Initialize an Image from a GIF file stream. | |
uint_t | InitGIF (const char *pFilename, RGBAWord8_t *pPalette=0) |
Initialize an Image from a GIF file. | |
uint_t | InitGIF (Filename *pFilename, RGBAWord8_t *pPalette=0) |
Initialize an Image from a GIF file. | |
uint_t | InitGIF (RezFile *pRezFile, uint_t uRezNum, RGBAWord8_t *pPalette=0) |
Initialize an Image from a GIF file. | |
uint_t | InitTGA (InputMemoryStream *pInput, RGBAWord8_t *pPalette=0) |
Initialize an Image from a TGA file stream. | |
uint_t | InitTGA (const char *pFilename, RGBAWord8_t *pPalette=0) |
Initialize an Image from a TGA file. | |
uint_t | InitTGA (Filename *pFilename, RGBAWord8_t *pPalette=0) |
Initialize an Image from a TGA file. | |
uint_t | InitTGA (RezFile *pRezFile, uint_t uRezNum, RGBAWord8_t *pPalette=0) |
Initialize an Image from a TGA file. | |
uint_t | InitBMP (InputMemoryStream *pInput, RGBAWord8_t *pPalette=0) |
Initialize an Image from a BMP file stream. | |
uint_t | InitBMP (const char *pFilename, RGBAWord8_t *pPalette=0) |
Initialize an Image from a BMP file. | |
uint_t | InitBMP (Filename *pFilename, RGBAWord8_t *pPalette=0) |
Initialize an Image from a BMP file. | |
uint_t | InitBMP (RezFile *pRezFile, uint_t uRezNum, RGBAWord8_t *pPalette=0) |
Initialize an Image from a BMP file. | |
void | Transfer (Image *pInput) |
Move an image to the control of another Image. | |
void | Shutdown (void) |
Releases all memory managed by this class instance. | |
const uint8_t * | GetImage (void) const |
Return the base pointer of the image. | |
uint8_t * | GetImage (void) |
Return the base pointer of the image. | |
const uint8_t * | GetImage (uint_t uMipMap) const |
Return the base pointer of the image. | |
uint_t | GetWidth (void) const |
Return the width of the image in pixels. | |
uint_t | GetWidth (uint_t uMipMap) const |
Return the width of the image in pixels for the requested mip map. | |
uint_t | GetHeight (void) const |
Return the height of the image in pixels. | |
uint_t | GetHeight (uint_t uMipMap) const |
Return the height of the image in pixels for the requested mip map. | |
uintptr_t | GetStride (void) const |
Return the number of bytes per scan line. | |
uintptr_t | GetStride (uint_t uMipMap) const |
Return the height of the image in pixels for the requested mip map. | |
ePixelTypes | GetType (void) const |
Return the pixel format type. | |
uint_t | GetMipMapCount (void) const |
Return the number of available mip maps. | |
uint_t | GetBytesPerPixel (void) const |
Return the bytes needed for each pixel. | |
uint_t | GetBitsPerPixel (void) const |
Return the bits needed for each pixel. | |
uintptr_t | GetSuggestedStride (void) const |
Determine the minimum number of bytes for a stride. | |
uintptr_t | GetSuggestedBufferSize (void) const |
Determine the amount of memory needed for an image buffer. | |
uintptr_t | GetImageSize (uint_t uMipMap) const |
Return the number of bytes a specific mip map image occupies. | |
const char * | ValidateForSave (void) const |
Test the Image for validity before using it for a save. | |
void | ClearBitmap (void) |
Erase all of the pixels in the bitmap. | |
uint_t | VerticleFlip (void) |
Flip an image upside down. | |
uint_t | HorizontalFlip (void) |
Flip an image horizontally. | |
uint_t | Store8888 (const Image *pInput, const RGBAWord8_t *pPalette) |
Convert an image into PIXELTYPE8888 format. | |
Static Public Member Functions | |
static Image * | New (void) |
Returns a pointer to a newly allocated instance of an Image. | |
static Image * | New (uint_t uWidth, uint_t uHeight, ePixelTypes eType) |
Returns a pointer to a newly allocated instance of an Image. | |
static Image * | New (uint_t uWidth, uint_t uHeight, ePixelTypes eType, uint_t uMipMaps) |
Returns a pointer to a newly allocated instance of an Image. | |
static Image * | New (const Image *pInput) |
Returns a pointer to a copy of the image. | |
static uint_t | GetBytesPerPixel (ePixelTypes eType) |
Given a pixel type, return the bytes needed for each pixel. | |
static uint_t | GetBitsPerPixel (ePixelTypes eType) |
Given a pixel type, return the bits needed for each pixel. | |
static uintptr_t | GetSuggestedStride (uint_t uWidth, ePixelTypes eType) |
Determine the minimum number of bytes for a stride. | |
static uintptr_t | GetSuggestedBufferSize (uint_t uWidth, uint_t uHeight, ePixelTypes eType) |
Determine the amount of memory needed for an image buffer. | |
static uintptr_t | GetSuggestedBufferSize (uint_t uWidth, uint_t uHeight, ePixelTypes eType, uint_t uMipMapLevels) |
Determine the amount of memory needed for an image buffer with mip maps. | |
Protected Attributes | |
uint8_t * | m_pImage |
Pointer to pixel array. | |
uint_t | m_uStride |
Number of bytes per scan line (Likely not the same value as m_uWidth) | |
uint_t | m_uWidth |
Width of image in pixels. | |
uint_t | m_uHeight |
Height of image in pixels. | |
uint_t | m_uFlags |
Internal behavior flags. | |
ePixelTypes | m_eType |
Type of pixel image. | |
Private Member Functions | |
Image (const Image &)=delete | |
Image & | operator= (const Image &)=delete |
Image (Image &&)=delete | |
Image & | operator= (Image &&)=delete |
Class for containing raw images.
This class is the mechanism for loading and saving popular file formats for image files such as TGA, LBM, PCX, PNG and the like. It's used as input for the Burger::Texture manager to convert the data from an image into a hardware texture for GPU rendering. Graphics tools can use this class exclusively for image conversion and manipulation
Pixel data type.
An enumeration to declare how each pixel is formatted.
|
privatedelete |
|
privatedelete |
Burger::Image::Image | ( | ) |
Default constructor.
Initialize to an empty image
Burger::Image::~Image | ( | ) |
void Burger::Image::ClearBitmap | ( | void | ) |
Erase all of the pixels in the bitmap.
Using the width value, zero out the pixels in the bitmap and use the stride value to skip to the next scan line.
Compressed and uncompressed formats are fully supported
|
static |
Given a pixel type, return the bits needed for each pixel.
Return 1-32 for number of bits per pixel. This will return zero where bytes per pixel doesn't make sense, like compressed formats.
eType | Pixel type to convert to a bit size |
|
inline |
Return the bits needed for each pixel.
Return 1-32 for number of bits per pixel. This will return zero where bytes per pixel doesn't make sense, like compressed formats.
|
static |
Given a pixel type, return the bytes needed for each pixel.
Return 1-4 for number of bytes per pixel. This will return zero where bytes per pixel doesn't make sense, like compressed formats or 2 or more pixels per byte
|
inline |
Return the bytes needed for each pixel.
Return 1-4 for number of bytes per pixel. This will return zero where bytes per pixel doesn't make sense, like compressed formats or 2 or more pixels per byte
Return the height of the image in pixels for the requested mip map.
An index of zero will get the largest (Native sized) mip map, an index of one gets the next largest and so on until the size of the smallest is found. If a mip map index higher than the smallest mip map is passed, the height of the smallest available mip map is returned.
uMipMap | Zero based index into the array of mip maps |
|
inline |
Return the height of the image in pixels.
const uint8_t * Burger::Image::GetImage | ( | uint_t | uMipMap | ) | const |
Return the base pointer of the image.
Returns a constant pointer to the upper left corner of the pixel image.
|
inline |
Return the base pointer of the image.
Returns the pointer to the upper left corner of the pixel image.
|
inline |
Return the base pointer of the image.
Returns a constant pointer to the upper left corner of the pixel image.
uintptr_t Burger::Image::GetImageSize | ( | uint_t | uMipMap | ) | const |
Return the number of bytes a specific mip map image occupies.
Return the size in bytes of a specific mip map sub image.
Used in conjunction with GetImage(uint_t) const, this will allow an application to extract a specific mip map for uploading onto a video card.
uint_t Burger::Image::GetMipMapCount | ( | void | ) | const |
Return the number of available mip maps.
uintptr_t Burger::Image::GetStride | ( | uint_t | uMipMap | ) | const |
Return the height of the image in pixels for the requested mip map.
An index of zero will get the largest (Native sized) mip map, an index of one gets the next largest and so on until the size of the smallest is found. If a mip map index higher than the smallest mip map is passed, the byte stride of the smallest available mip map is returned.
uMipMap | Zero based index into the array of mip maps |
|
inline |
Return the number of bytes per scan line.
|
static |
Determine the amount of memory needed for an image buffer.
Given a width, height and pixel type, calculate the size of a buffer that would contain the entire image. This function is used to allocate an image buffer.
uWidth | The width of the proposed image in pixels |
uHeight | The height of the proposed image in pixels |
eType | The format of a single pixel in the image |
|
static |
Determine the amount of memory needed for an image buffer with mip maps.
Given a Width, Height,pixel type and number of levels of mip maps, calculate the size of a buffer that would contain the entire image. This function is used to allocate an image buffer.
uWidth | The width of the proposed image in pixels |
uHeight | The height of the proposed image in pixels |
eType | The format of a single pixel in the image |
uMipMapLevels | Number of mip map levels deep. Zero is treated as one. |
uintptr_t Burger::Image::GetSuggestedBufferSize | ( | void | ) | const |
Determine the amount of memory needed for an image buffer.
Given an Image set with Width, Height and pixel type, calculate the size of a buffer that would contain the entire image. This function is used to allocate an image buffer.
|
static |
Determine the minimum number of bytes for a stride.
Given a Width and pixel type, calculate the number of bytes for a single scan line of an image.
Note: Compressed formats will give the stride to the next block group, not the next line.
uWidth | The width of the proposed image in pixels |
eType | The format of a single pixel in the image |
uintptr_t Burger::Image::GetSuggestedStride | ( | void | ) | const |
Determine the minimum number of bytes for a stride.
Given an Image and using it's pixel format and pixel width, calculate the number of bytes for a single scan line of an image.
|
inline |
Return the pixel format type.
Return the width of the image in pixels for the requested mip map.
An index of zero will get the largest (Native sized) mip map, an index of one gets the next largest and so on until the size of the smallest is found. If a mip map index higher than the smallest mip map is passed, the width of the smallest available mip map is returned.
uMipMap | Zero based index into the array of mip maps |
|
inline |
Return the width of the image in pixels.
uint_t Burger::Image::HorizontalFlip | ( | void | ) |
Flip an image horizontally.
For uncompressed pixel formats, this function will flip the image left to right
Make a copy of an image.
Given an image, make a copy of it in this image
pInput | Pointer to a valid image to copy from |
uint_t Burger::Image::Init | ( | uint_t | uWidth, |
uint_t | uHeight, | ||
ePixelTypes | eType ) |
Allocates memory suitable for an image.
Given a width, height and pixel depth of a requested image type, allocate an uninitialized buffer and set up the constants to describe this data.
If the image dimensions/type is already a match, this function returns immediately. If not, any previous data is released and new data is allocated.
uWidth | Width of the new image in pixels |
uHeight | Height of the new image in pixels |
eType | Pixel type of the new image |
uint_t Burger::Image::Init | ( | uint_t | uWidth, |
uint_t | uHeight, | ||
ePixelTypes | eType, | ||
uint_t | uMipMaps ) |
Allocates memory suitable for an image and its mipmaps.
Given a width, height, pixel depth and mip map count, of a requested image type, allocate an uninitialized buffer and set up the constants to describe this data.
If the image dimensions/type is already a match, this function returns immediately. If not, any previous data is released and new data is allocated.
uWidth | Width of the new image in pixels |
uHeight | Height of the new image in pixels |
eType | Pixel type of the new image |
uMipMaps | Number of mip maps requested |
void Burger::Image::Init | ( | uint_t | uWidth, |
uint_t | uHeight, | ||
ePixelTypes | eType, | ||
uintptr_t | uStride, | ||
const uint8_t * | pImage, | ||
uint_t | uFlags = 0, | ||
uint_t | uMipMaps = 0 ) |
Manually initialize an Image.
Given all entries for an Image record, initialize it. If there was a previous buffer, it's released.
uWidth | Width of the new image in pixels |
uHeight | Height of the new image in pixels |
eType | Pixel type of the new image |
uStride | Bytes per scan line of the new image |
pImage | Pointer to the pixels of the new image |
uFlags | Flag controlling whether or not the class will call Free() on pImage on shutdown |
uMipMaps | Number of mip maps in the image (Max 16) |
uint_t Burger::Image::InitBMP | ( | const char * | pFilename, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a BMP file.
Given a Burgerlib format filename, open the file, read it in, and convert the contents into an Image.
pFilename | Pointer to a Burgerlib filename |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitBMP | ( | Filename * | pFilename, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a BMP file.
Given a Burgerlib Filename, open the file, read it in, and convert the contents into an Image.
pFilename | Pointer to a Burgerlib Filename |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitBMP | ( | InputMemoryStream * | pInput, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a BMP file stream.
Given a InputMemoryStream containing a BMP file, convert the contents into an Image.
pInput | Pointer to a stream with a BMP file inside |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitBMP | ( | RezFile * | pRezFile, |
uint_t | uRezNum, | ||
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a BMP file.
Given a Burgerlib Filename, open the file, read it in, and convert the contents into an Image.
pRezFile | Pointer to a Burgerlib RezFile |
uRezNum | Index number of the file in the RezFile |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitGIF | ( | const char * | pFilename, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a GIF file.
Given a Burgerlib format filename, open the file, read it in, and convert the contents into an Image.
If this is an animated GIF file, only load in the first frame. This is a convenience routine to simplify loading a graphic file into memory.
pFilename | Pointer to a Burgerlib filename |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitGIF | ( | Filename * | pFilename, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a GIF file.
Given a Burgerlib Filename, open the file, read it in, and convert the contents into an Image.
If this is an animated GIF file, only load in the first frame. This is a convenience routine to simplify loading a graphic file into memory.
pFilename | Pointer to a Burgerlib Filename |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitGIF | ( | InputMemoryStream * | pInput, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a GIF file stream.
Given a InputMemoryStream containing a GIF file, convert the contents into an Image.
If this is an animated GIF file, only load in the first frame. This is a convenience routine to simplify loading a graphic file into memory.
pInput | Pointer to a stream with a GIF file inside |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitGIF | ( | RezFile * | pRezFile, |
uint_t | uRezNum, | ||
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a GIF file.
Given a Burgerlib Filename, open the file, read it in, and convert the contents into an Image.
If this is an animated GIF file, only load in the first frame. This is a convenience routine to simplify loading a graphic file into memory.
pRezFile | Pointer to a Burgerlib RezFile |
uRezNum | Index number of the file in the RezFile |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitPNG | ( | const char * | pFilename, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a PNG file.
Given a Burgerlib format filename, open the file, read it in, and convert the contents into an Image.
If this is an animated PNG file, only load in the first frame. This is a convenience routine to simplify loading a graphic file into memory.
pFilename | Pointer to a Burgerlib filename |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitPNG | ( | Filename * | pFilename, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a PNG file.
Given a Burgerlib Filename, open the file, read it in, and convert the contents into an Image.
If this is an animated PNG file, only load in the first frame. This is a convenience routine to simplify loading a graphic file into memory.
pFilename | Pointer to a Burgerlib Filename |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitPNG | ( | InputMemoryStream * | pInput, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a PNG file stream.
Given a InputMemoryStream containing a PNG file, convert the contents into an Image.
If this is an animated PNG file, only load in the first frame. This is a convenience routine to simplify loading a graphic file into memory.
pInput | Pointer to a stream with a PNG file inside |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitPNG | ( | RezFile * | pRezFile, |
uint_t | uRezNum, | ||
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a PNG file.
Given a Burgerlib Filename, open the file, read it in, and convert the contents into an Image.
If this is an animated PNG file, only load in the first frame. This is a convenience routine to simplify loading a graphic file into memory.
pRezFile | Pointer to a Burgerlib RezFile |
uRezNum | Index number of the file in the RezFile |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitTGA | ( | const char * | pFilename, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a TGA file.
Given a Burgerlib format filename, open the file, read it in, and convert the contents into an Image.
pFilename | Pointer to a Burgerlib filename |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitTGA | ( | Filename * | pFilename, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a TGA file.
Given a Burgerlib Filename, open the file, read it in, and convert the contents into an Image.
pFilename | Pointer to a Burgerlib Filename |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitTGA | ( | InputMemoryStream * | pInput, |
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a TGA file stream.
Given a InputMemoryStream containing a TGA file, convert the contents into an Image.
pInput | Pointer to a stream with a TGA file inside |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
uint_t Burger::Image::InitTGA | ( | RezFile * | pRezFile, |
uint_t | uRezNum, | ||
RGBAWord8_t * | pPalette = 0 ) |
Initialize an Image from a TGA file.
Given a Burgerlib Filename, open the file, read it in, and convert the contents into an Image.
pRezFile | Pointer to a Burgerlib RezFile |
uRezNum | Index number of the file in the RezFile |
pPalette | Pointer to a 256 entry RGBAWord8_t palette, or NULL if no buffer exists |
|
static |
Returns a pointer to a copy of the image.
Makes a duplicate of this image and returns a pointer to the new instance.
Release this object with a call to delete
pInput | Pointer to a valid Image to copy from |
|
static |
Returns a pointer to a newly allocated instance of an Image.
Creates an object of the specified type. All memory is initialized.
Release this object with a call to delete
uWidth | Width of the image in pixels |
uHeight | Height of the image in pixels |
eType | Type of pixel data |
|
static |
Returns a pointer to a newly allocated instance of an Image.
Creates an object of the specified type. All memory is initialized.
Release this object with a call to delete
uWidth | Width of the image in pixels |
uHeight | Height of the image in pixels |
eType | Type of pixel data |
uMipMaps | Number of levels of mipmaps for the image |
|
static |
Returns a pointer to a newly allocated instance of an Image.
Creates an empty Image object.
Release this object with a call to delete
void Burger::Image::Shutdown | ( | void | ) |
Releases all memory managed by this class instance.
Releases all memory attached to this image and clears out all of the width/height/depth variables.
uint_t Burger::Image::Store8888 | ( | const Image * | pInput, |
const RGBAWord8_t * | pPalette ) |
Convert an image into PIXELTYPE8888 format.
Assume that the Image is already an PIXELTYPE8888 format shape and a buffer is present. Return an error if not.
pInput | Pointer to an image to convert from |
pPalette | Optional color palette if converting from an 8 bit format |
void Burger::Image::Transfer | ( | Image * | pInput | ) |
Move an image to the control of another Image.
Given an image, move the control of its contents into another Image. The pInput image will have no data within itself and can be immediately released or reappropriated.
No buffers are allocated or released. Only pointers are exchanged.
This Image will be purged before the transfer is started.
pInput | Pointer to a valid image to transfer from |
const char * Burger::Image::ValidateForSave | ( | void | ) | const |
uint_t Burger::Image::VerticleFlip | ( | void | ) |
Flip an image upside down.
For uncompressed pixel formats, this function will flip the image upside down
|
protected |
Type of pixel image.
|
protected |
Pointer to pixel array.
|
protected |
Internal behavior flags.
|
protected |
Height of image in pixels.
|
protected |
Number of bytes per scan line (Likely not the same value as m_uWidth)
|
protected |
Width of image in pixels.