KNOWN ISSUES

16 bit operations can present problems, especially with transforming images. The "Imager" library, which this module uses for image loading, scaling, rotating and merging, as well as TrueType rendering, only works in 24 or 32 bit modes. All conversions have to be made to RGB565 (16 bit) within the module in Perl code.

This makes things slower, and thus it is highly recommended you use 32 bit mode, as that works the best, and it has more colors anyway. True, 32 bit mode takes up twice as much video RAM, but the trade off is worth it.

If you must use 16 bit (a TFT panel for instance), then know the following likely do not work fast or work at all:

TrueType Rendering

The 32 bit RGB888 output from Imager must be converted to RGB565 (16 bit) before it can be displayed. This means the larger the text, the longer this process takes. You can see this behavior in the splash screen.

Blit Transform

rotate

Since Imager is 24/32 bit only, this rotate is done strictly in Perl instead, for 16 bit mode. So thus it is slower. The time to convert from 16 bit to 32 bit, rotate in Imager, then convert back takes longer than just rotating in Perl itself.

scale

Doesn't work in 16 bit mode. You are best off scaling images as part of loading them, as scaling is done while the image is still 32 bit in that process. Converting from 16 bit to 32 bit, scaling, then back to 16 bit takes forever, and yields poor color results.

monochrome

Works flakey in 16 bit mode. It does convert to monochrome, but in a violet hue for some reason. It's obvious I have this code wrong, but know it is a problem at the moment.

merge

Results may vary. I don't recommend using it in 16 bit mode.

Loading Images

When loading images in 16 bit mode, the module has to first load them, scale them, and then finally convert them to 16 bit RGB565. This is slower than 32 bit mode, as no conversion is needed.

When loading animated GIFs, the process is more involved, as this process is not only multiplied by the number of frames, but also it requires merging the frame on top of the one before it. So 16 bit mode takes longer to process these animations.