  Highly accurate alpha blending can be performed entirely with integer
operations, and no divisions. To reduce the number of integer multiplications,
multiple color components can be blended in parallel in the same 32-bit or
64-bit register. This tutorial explains how to avoid division operations when
alpha blending with 32-bit RGBA pixels. An RGBA pixel contains four 8-bit
components (red, green, blue, and alpha) whose values range from 0 to 255.
Alpha blending requires multiplication of the color components by an alpha
value, after which (for greatest accuracy) each of these products is divided by
255 and then rounded to the nearest integer. This tutorial presents an
approximate alpha-blending formula that replaces the division operation with an
integer shift and add -- and also enables the number of multiplications to be
reduced. When the same blending calculation is carried out to high precision
using double-precision floating-point division operations, the results are
found to exactly match those produced by this approximation. C++ code examples
are included.
