Introduction: Bitmaps in Memory and in Files
Generally, the size of a bitmap in memory is determined by
its dimensions and its color resolution. For example, to calculate the number
of bytes for a 500-by-500 pixel, 24-bit image, you multiply 500 * 500 * 3.
(Multiply by 3 because there are 3 bytes in 24 bits.) For an 8-bit image,
it would be 500 * 500, plus the size of its palette, which is about 1K. There
is an exception for 1-bit files, which can be loaded in a compressed format
using the LEADTOOLS Document/Medical toolkit.
For any color image, whether the color values are in a palette
or in the image data, the color of each pixel in the bitmap consists of red,
green, and blue values. They always use the RGB color-space model, which means
that red, green, and blue values are combined to represent a color.
The size of the same color image when it is stored in a file
is often much smaller, and the color-space model is not always RGB. For example,
JPEG and LEAD CMP files both use a YUV color-space model, where Y is a luminance
value, and the U and V values are chrominance values. In this color-space
model, brightness information is stored in the luminance value, and color
information is stored in the chrominance values. JPEG and LEAD CMP achieve
data compression through sampling techniques that can affect the accuracy
of the YUV values. This kind of compression is sometimes referred to as lossy
compression, because you can manipulate the compression parameters to choose
between greater compression or greater accuracy. (YCbCr, used in TIFF images,
is the same color-space model as YUV.)
Another color-space model used in image files is CMYK (designed
for color printing using cyan, magenta, yellow, and black). Other compression
techniques include RLE (run-length encoding) and LZW (Lempel-Ziv and Welch).
Both of these techniques preserve the accuracy of the image data, and they
achieve compression solely by identifying repetitions of data. Some grayscale
and 1-bit image file formats also use RLE and LZW compression techniques.
The image file formats are not only used for storage in the
computer's file system, but are also used for database storage and for transmission
of images. Furthermore, some applications keep frequently-used images in memory
in a compressed file format. Thus, they can take advantage of memory speed
when loading bitmaps from these files.
LEADTOOLS SDKs give developers extensive control over
the loading, displaying and saving of bitmaps in their applications. LEADTOOLS
has the ability to resize bitmaps during the load process greatly reducing
the memory overhead of loading large images for viewing. Additionally, LEADTOOLS
has the ability to update a lookup table, based on a curve that passes through
user specified points or based on a user specified mathematical function offering
additional flexibility in remapping the colors in the image.