Image Transcoder


By Steph, 5 years ago

Versatile Image Transcoder

This is a new tool to transcode your images in C++. It recognizes the following image formats: PNG, GIF, JPG and BMP. And it offers support for all the display modes that exist on META:

  • RGB565 for resolutions 80x64 and 160x128.
  • RGB565 with indexed colors for resolutions 80x64 and 160x128
  • RGB565 for the use of gb.tft API with 160x128 resolution

In the case of indexed color images, the transcoder also generates the code of the color palette you have provided.

About spritesheets and tilesets

You must provide an image in accordance with the values given for the width and height of the frames. The transcoder must be able to automatically split the image to isolate each frame. In the image, the frames must be placed on a grid that will be read, first from left to right, and then from top to bottom. If the grid has totally transparent frames, they will simply be ignored. Warning: if you do not specify a transparency color, the first decoded color will play this role. In other words, if a frame is entirely painted with this color, it will automatically be considered totally transparent and therefore ignored.

About indexed color images

This type of image must be accompanied by a colour palette. By default, the transcoder uses the official Gamebuino palette. If you have created your image with another palette, you must provide it to the transcoder. It is simply an additional image (that you can also drag and drop into the appropriate insert), where each pixel represents a color. This palette must have exactly 16 pixels. Pallet dimensions can be 16x1, 8x2, 4x4, 2x8 or 1x16.

If your image has less than 16 colors, you must complete your palette with any color of your choice (present or not on the image).

If your image has transparent pixels, the transparency color must appear in your palette. Otherwise, the first color of the palette will play this role. Therefore, any frame that is entirely painted with this color will be considered transparent and therefore ignored.

The example below illustrates a way to define your sprites with the same color palette, if you specify 0xff00ff as the transparency color: