Image Transcoder

1.0

Par Steph, il y a 1 an

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 :