Utilitaires

CMSXImg

Cet article a été mis à jour, vous consultez ici une archive de cet article!
MSXImage est un outil Windows en ligne de commande permettant d'extraire des sprites d'une image et de les convertir dans un format intégrable dans un programme C ou Assembleur, ou directement en binaire.

Version actuelle : MSXImage 1.6.3

Exemple



Prenons l'image suivante :


Elle est constitué de 4 rangées (une par voiture) de 16 sprites d'une taille de 13x11 pixels.
Imaginons qu'on souhaite extraire les 16 sprites de la 2e voiture (la jaune) vers un fichier my_sprites.h pour être intégré dans un programme C.
Cela permet d'avoir les images directement intégré au programme sans avoir à les charger à la main (très utile pour les programme destiné aux ROMs).
Nous utiliserons la commande :

> MSXImage -in my_image.png -out my_sprites.h -pos 0 11 -size 13 11 -num 16 1 -name myYellowCar -trans 0xE300E3 -bpc 8

-pos 0 11 : donne la position de départ de la zone à extraire dans l'image source.
-size 13 11 : donne la taille des blocks à extraire.
-num 16 1 : donne le nombre de blocks à extraire.
-name myYellowCar : donne le nom de la structure à créer (dans le cas d'un fichier texte).
-trans 0xE300E3 : donne la couleur de fond qui va permettre de déterminer les zones transparentes.
-bpc 8 : détermine le nombre de couleur des sprites. Ici, on utilise le mode 8-bits du Screen 8 et ses 256 couleurs.

Dans ce cas, l'outil va générer un fichier texte qu'on va pouvoir ensuite inclure dans un programme C qui va ressembler à ça :
Code C :
// Data table
const unsigned char myYellowCar[] =
{
// Sprite[0] (offset:0)
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x04, 0x04, 0x04, 0x10, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x6D, 0x49, 0x04, 0x21, 0x04, 0xFB, 0x21, 0x21, 0x91, 0x92, 0xBC, 0x6D, 0x00, 
    ...
};
 


Commandes



Code TEXT :
Usage: MSXImage [options]
Options:
   -in fileName    Inuput file name. Can be 8/16/24/32 bits image
                   Supported format: BMP, JPEG, PCX, PNG, TGA, PSD, GIF, etc.
   -out fileName   Output file name
   -format ?       Output format
      auto         Auto-detected using output file extension (default)
      c            C header file output
      asm          Assembler header file output
      bin          Raw binary data image
   -name name      Name of the table to generate
   -pos x y        Start position in the input image
   -size x y       Width/height of a block to export (if 0, use image size)
   -num x y        Number of block to export (columns/rows number)
   -trans color    Transparency color (in RGB 24 bits format : 0xFFFFFF)
   -bpc ?           Number of bits per color for the output image (support 1, 4 and 8-bits)
      1               1-bit black & white (0: tranparency or black, 1: other colors)
      4               4-bits index in 16 colors palette
      8               8 bits RGB 256 colors (format: [G:3|R:3|B2]; default)
   -pal            Palette to use for 16 colors mode
      msx1         Use default MSX1 palette
      custom       Generate a custom palette and add it to the output file
   -palcount n     Number of color in the custom palette to create (default: 15)
   -compress ?
      none         No compression (default)
      crop16       Crop image to non transparent area (4-bits, max size 16x16)
      cropline16   Crop image to non transparent area (4-bits per line, max size 16x16)
      crop32       Crop image to non transparent area (5-bits, max size 32x32)
      cropline32   Crop image to non transparent area (5-bits per line, max size 32x32)
      crop256      Crop image to non transparent area (8-bits, max size 256x256)
      cropline256  Crop image to non transparent area (8-bits per line, max size 256x256)
      rle0         Run-length encoding of transparent blocs (7-bits for block length)
      rle4         Run-length encoding for all colors (4-bits for block length)
      rle8         Run-length encoding for all colors (8-bits for block length)
   -dither ?       Dithering method (for 1-bit color only)
      none         No dithering (default)
      floyd        Floyd & Steinberg error diffusion algorithm
      bayer4       Bayer ordered dispersed dot dithering(order 2 – 4x4 - dithering matrix)
      bayer8       Bayer ordered dispersed dot dithering(order 3 – 8x8 - dithering matrix)
      bayer16      Bayer ordered dispersed dot dithering(order 4 – 16x16 dithering matrix)
      cluster6     Ordered clustered dot dithering(order 3 - 6x6 matrix)
      cluster8     Ordered clustered dot dithering(order 4 - 8x8 matrix)
      cluster16    Ordered clustered dot dithering(order 8 - 16x16 matrix)
   -data ?         Text format for numbers
      dec          Decimal data (c & asm)
      hexa         Default hexadecimal data (depend on langage; default)
      hexa0x       Hexadecimal data (0xFF; c & asm)
      hexaH        Hexadecimal data (0FFh; asm only)
      hexa$        Hexadecimal data ($FF; asm only)
      hexa#        Hexadecimal data (#FF; asm only)
      bin          Binary data (11001100b; asm only)
   -skip           Skip empty sprites (default: false)
   -help           Display this help


Documentation



Fichier source



Fichier destination



Découpage des sprites



Couleurs



Compression