Image Transcoder

Image transcoder

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:

See more
Author :  jicehel

English version just below after french version...  :)

Génial!  merci Steph, tu apportes vraiment beaucoup à notre petite communauté. Garde la patates et continues d'avoir plein d'idées.  :)

Great ! Thanks Steph, you make great job for our group of META owners. Continue to have so many energy and so many ideas :)

Author :  Codnpix

Salut ! Tu as été vite finalement ! Génial, merci beaucoup !!

Thanks a lot for that great contrib Steph ! This is going to help a lot.

Author :  Steph

Don't forget that our English-speaking friends will want to be able to read your comments as well ;-)

Author :  fabpianista

Hi guys! I'm trying to use both of the image transcoders on Chrome and Safari for Mac and they don't work. :(

Maybe I'm doing something wrong? I'm trying to transcode an image with 160x128 pixels.

Any help you be much appreciated. Merci! :)

Author :  Steph

Hi fabpianista,

I'm on macOS and ImageTranscoder works perfectly with Chrome and Safari!

What exactly is your problem?

Author :  Steph

Here is a screenshot from Safari, but we get exactly the same thing with Chrome !

Author :  fabpianista

Hi Steph,

Many thanks for your reply! It turns out that the conversion tool was not working with BMPs. After converting my sprites to PNGs, it worked as intended. :)

Muito obrigado! :D

Author :  Steph

Com prazer!

Of course it works with BMP files!
I just did the test with different color depths: 32, 24, 16, 8, 4 and 1 bit :-)
Maybe your creative tool generates a strange format?

Author :  sentinel87

Steph this is great tool. Thx for sharing it :D Created all images for my game so far :)

Author :


I’m very happy that it was able to help you :wink:

Author :  DavTheDev

I used it as well for all my graphics. Real time saver!

There's one little thing that may be a bug: it is impossible to scroll down in the ouput code box and manually select what to copy & paste, especially when the image is large. Just saying that, because I don't need to get the palette definition back with each new indexed image I'm adding to the game.
Something that would be nice as well is autodetecting the width and height from the provided image source. Especially when multiple frames are not needed.

Author :


Hello Dav,

Glad to know you find the tool useful.

In fact, it's not a bug at all... to be able to scroll through the text field and copy a selection, you have to give it keyboard focus.


And thanks for the improvement tips... I'll think about it for the next version, as soon as I have time!

Hej Steph. Is Image Transcoder moved to other url? Because it is unavailable now :confused:

@LYSANDRE thank you for sending the hosting link.

@sentinel87 I don’t understand exactly… when I go to the creation page, the utility is available (embedded in an iframe). What exactly is the problem you’re having?
Image Transcoder has always been, and still is, available at the same address. Nothing has moved. Try to tell me a little more so that I can find a solution in case of a problem.

@sentinel87 Okay! I just figured it out!
The SSL certificate expired 3 days ago and was not automatically renewed (I didn’t understand why, by the way). So I have just renewed it manually and everything should work normally now. Come back to me if you encounter another problem :wink:

1 Like

Ok, figured out thanks to @LYSANDRE link. When I open transcoder by the embedde window has describtion: “ was moved or it’s unavailable”. After I added security exception everythig was fine.

1 Like

Exactly. So now we know something :smiley: Thx for help.

1 Like

If I want to use the tool in “indexed” mode, I don’t get any data in the data block. I used Chrome and Firefox. I’ve tried PNGs and GIFs. It doesn’t show me the hex datas …