Image Transcoder

1.0

Par Steph, il y a 7 mois

Transcodeur d’images polyvalent

Voici un nouvel outil pour transcoder vos images en C++. Il reconnaît les formats d’image suivants : PNG, GIF, JPG et BMP. Et il vous offre le support de tous les modes d’affichage qui existent sur la META :

  • RGB565 pour les résolutions 80x64 et 160x128
  • RGB565 avec couleurs indexées pour les résolutions 80x64 et 160x128
  • RGB565 pour l’usage de l’API gb.tft en 160x128

Dans le cas des images aux couleurs indexées, le transcodeur génère également le code de la palette de couleurs que vous lui aurez fournie.

Concernant les spritesheets et les tilesets

Vous devez fournir une image en accord avec les valeurs renseignées pour la largeur et la hauteur des frames. Le transcodeur doit pouvoir effectuer un découpage automatique de l’image pour isoler chaque frame. Sur l’image, les frames doivent être disposés sur une grille qui sera lue, de gauche à droite d’abord, et de haut en bas ensuite. Si la grille comporte des frames totalement transparents, ils seront tout simplement ignorés. Attention : si vous ne spécifiez aucune couleur de transparence, c’est la première couleur décodée qui jouera ce rôle. Autrement dit, si un frame est entièrement peint avec cette couleur, il sera automatiquement considéré comme totalement transparent et donc ignoré.

Concernant les images aux couleurs indexées

Ce type d’images doit obligatoirement être accompagné d’une palette de couleurs. Par défaut, le transcodeur utilise la palette officielle de la Gamebuino. Si vous avez créé votre image avec une autre palette, vous devez impérativement la fournir au transcodeur. Il s’agit simplement d’une image supplémentaire (que vous pouvez également glisser-déposer dans l’encart approprié), où chaque pixel représente une couleur. Cette palette doit comporter exactement 16 pixels. Les dimensions de la palette peuvent être 16x1, 8x2, 4x4, 2x8 ou 1x16.

Si votre image comporte moins de 16 couleurs, vous devez impérativement compléter votre palette avec n’importe quelle couleur de votre choix (présente ou non sur l’image).

Si votre image comporte des pixels transparents, la couleur de transparence doit figurer dans votre palette. Dans le cas contraire, c’est la première couleur de la palette qui jouera ce rôle. Par conséquent, tout frame qui serait entièrement peint avec cette couleur sera considéré comme transparent et donc ignoré.

L’exemple ci-dessous illustre une manière de définir vos sprites avec la même palette de couleurs, si vous précisez bien 0xff00ff comme couleur de transparence :

Derniers commentaires

avatar
gamebuino-admin
il y a 4 mois
Author :

 Steph


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.

![](upload://rxOgiJvCYJbtxkjxLqDeWcppvqs.gif)

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

avatar
gamebuino-admin
il y a 4 mois
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.

avatar
gamebuino-admin
il y a 4 mois
Author :

 Steph


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