Xibo for Android supports all main image formats except animated GIF. Images are downloaded from the CMS and cached in the local player library (on internal storage or SD card). They are preloaded into memory shortly before they are due to be shown.
Size and Format
Images served through the image module are sampled so that only the quantity of pixels that can be displayed on the screen are loaded into memory.
To display images best:
- Ensure your image is saved at not more than 96 dpi
- Ensure your image is a similar size to your region
- Use PNG/JPG
Why is this necessary?
When an image is shown the physical space the image takes up in memory is far greater than the size of the file - the majority of file containers use compression to reduce the file size. Taking an example JPEG with a resolution of 2160 x 3840 at 600 dpi (common for printed media) shown without any sampling, this image would take ~24 MB of memory to paint on screen. If a graphics package were used to drop the resolution to 1080x1920 at 96 dpi, it would only take 6 MB of memory to open.
Unable to Decode
Xibo for Android needs to "decode" the image from the format it has been saved in (i.e. PNG) and load it into the graphics card for display. Some images are in a format that Android is not able to decode. In these cases the image will be blacklisted and the layout will not be shown.
Xibo for Android caches images in the local library and opens them when they are needed for display. If Xibo cannot open the image for some reason it will provide an I/O Exception and skip the Layout. Common causes for this error are:
- Read Only Storage
- Corrupted Storage
- Corrupted Download (will be re-downloaded)
- Corrupted Upload to the CMS
As a general rule, if this error message is happening for every image, the most likely cause is that the storage has become read only. If it is happening for 1 image only, then it is more likely to be a corruption.
Images on embedded or web page media observe the rules of the browser application on the Android device.