Color Depth

While color space specifies how to construct color from its components, color depth specifies how these components are stored in the computer's memory. Usually color depth is measured in the number of bits used to represent one color value (pixel) - bits per pixel (bpp). The more bits a pixel occupies, the more different colors can be represented by this pixel. For example, 1-bit pixels can represent only 2 colors, 8-bit pixels - 256 color, 24-bit pixels - 16 777 216 colors (the so-called true color; research has proven that the human eye cannot recognize more colors). On the other hand, the big color depth means that image requires more memory. Sometimes true color is not required (for example for storing documents or imagery which contains only a few colors), that's why we can greatly save memory by reducing the color depth.

Graphics Mill supports images with the following color depths:

  • 1-bit indexed (palette) images.
  • 4-bit and 8-bit indexed (palette) images.
  • 8 bits per channel images (8, 16, 24, 32, or 40 bits per pixel, depending on the number of channels in pixel).
  • 16 bits per channel images (16, 48, 64, or 80 bits per pixel, depending on the number of channels in pixel). Bitmaps with such large color depth are also called extended.

As you see here, colors differ not only in the number of bits per pixel, but also in the method of storage: index in the palette (i.e. indexed bitmaps) or direct color value.

Indexed images always contain a palette - a special table of colors. Each pixel is an index in this table. Usually a palette contains 256 or less entries. That's why the maximum depth of an indexed pixel is 8 bpp. Using palettes is a common practice when working with small color depths.

Unlike indexed images, pixels from non-indexed continuous images store actual color values instead of a palette index. Each pixel consists of components (also known as channels). Channels can be interpreted differently, according to the color space of the pixel. For example, grayscale images have only one luminosity channel. RGB images have three channels - red, green, and blue. CMYK images have four channels - cyan, magenta, yellow, and black. In addition, pixels can contain an extra component called alpha channel. The alpha channel does not contain any color or luminosity information, rather it specifies the degree of pixel opacity when it is overlayed on another image. The less the alpha value, the more transparent the pixel.

Let's examine all the possible color depths supported by Graphics Mill in more detail.

1-Bit Indexed (Palette) Images

1-bit images (also known as bitonal) can consist only of two colors. Usually these colors are black and white (however as there is a palette, you can specify any other two colors). The main benefit of bitonal images is an extremely compact size, however usually two colors are not enough. But nevertheless, there is a kind of images, where 1-bit color depth is widely used: documents, paperwork, faxes, and other similar images.

In Graphics Mill such images have a Format1bppIndexed pixel format. Graphics Mill allows some basic transformations on such images (resize, flip, rotate, crop). When zooming a bitonal image, you can use the special technique of resizing which preserves details and produces high quality (known as scale-to-gray) images.

4-Bit and 8-Bit Indexed (Palette) Images

A maximum number of 4-bit colors is 16, and the maximum count of 8-bit colors is 256. These color depths are used when it is necessary to store an image with a small number of colors. The typical example is web imagery - buttons, banners, logos, etc. Their relatively small size makes such images ideal for the web.

In Graphics Mill such images have pixel formats Format4bppIndexed and Format8bppIndexed accordingly. For these formats Graphics Mill supports only basic transforms and effects (rotate, resize, crop and some others).

8 Bits per Channel Images

These images are most popular in store photos and similar images. This level of color depth allows representing as many color hues as the human eye can recognize. There are the following kinds of 8 bits per channel pixel formats supported in Graphics Mill:

16 Bits per Channel Images

It may seem strange. Why we need more than 8 bits per channel if our eye will not notice the difference? The problem is that when we apply some operations to the 8 bits per channel image (for example tone adjustment or color enhancement), some color information can be lost or distorted due to rounding errors. It is especially noticeable when we apply these operations several times. To avoid this problem, we have to increase the color depth. That's why most scanners produce 48 bpp images instead of 24 bpp. The following 16 bits per channel pixel formats are supported in Graphics Mill: