Raster graphics are usually rendered with dedicated color specifications. Here each pixel is assigned an individual RGB (A) value. 8 bit color depth per channel results in an uncompressed memory requirement of 4 bytes per pixel.
An alternative is the use of palettes or indexed colors. The necessary colors are stored in a palette of mostly 256 colors and only the index is specified during use. This reduces the memory requirement to a calculated 25%, plus 1 KB for the pallet.
Using indexed colors, colors can be defined according to their function. By simply overwriting the color information, it is easy to create new color variants, e.g. realize a day / night design or make individual color adjustments without changing the graphics during operation.
Note that this technology reduces the number of possible colors per hardware layer to 256. Graphics with many gradients are therefore less suitable because they can quickly lead to banding effects.
The PNG specification includes both dedicated color information in a variety of color depths and the ability to define colors across a palette. However, graphics programs support only a part of the standard, as implemented in libpng as a reference, in particular the support of indexed colors is usually implemented only rudimentarily.
Due to insufficient implementation, most graphics programs are unable to render these files correctly. For example, PhotoShop automatically converts indexed colors with additional alpha channels into RGBA colors when reading in, thereby losing the logical assignment of colors to functions.
M.Fuchs Design has self-developed tools that are able to work around these limitations. The control center is an extensive Excel spreadsheet that controls all possible 256 colors (RGBA) and their functions. One of these tools converts the source files to indexed colors that match their function.
For this purpose, the original graphics must be color optimized for the conversion designed. Only with the overloading of a final palette at runtime, the colors are displayed as intended.