Obligement - L'Amiga au maximum

Vendredi 24 mai 2019 - 05:24  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles en d'autres langues


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Logiciels
 · Jeux
 · Scène démo
 · Divers


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Test : Les créateurs de programmes source C à partir d'une image IFF
(Article écrit par Pascal Amiable et extrait d'Amiga News Tech - janvier 1992)


Voici un article présentant les meilleurs utilitaires du DP spécialement destinés à créer des programmes sources C à partir d'images IFF.

Le programme illustrant l'article sur les BOB utilise la sortie produite par un tel utilitaire pour inclure directement dans le source, la définition du BOB. Il en existe plusieurs, dont voici illico presto ceux que nous pensons être les meilleurs. Sans oublier bien entendu le convertisseur de Denis Genot, promu utilitaire du mois dernier.

ILBM2Image

Sous ce répertoire de la disquette Fish 190 se cachent trois petits utilitaires, créés par Denis Green, d'un emploi fort aisé, permettant de créer et d'afficher des structures Image, au sens Intuition du terme.

Pour vous en servir, rien de plus simple. Vous dessinez d'abord l'image voulue avec votre programme de dessin favori et vous la sauvegardez au format IFF (le fait que ce soit une page entière ou une simple brosse n'a aucune importance). Vous êtes dès lors prêt à traiter votre fichier IFF suivant trois méthodes différentes.

Imaginons pour commencer que vous désiriez créer une bitmap correspondante à votre dessin, pour créer par exemple un BOB. Vous utiliserez dans ce cas ILBM2Image en utilisant la syntaxe suivante :

ILBM2image toto ; où toto est le nom de votre fichier IFF

L'utilitaire générera alors un fichier toto.c qui n'est autre que la déclaration du tableau de UWORD correspondant à la bitmap :

UWORD toto[] = {
   0x3e91,
   0xa038,
   0x1590,
   0xe1e0,
   0x33ff,
   0xc03c,
   0x1f01,
   0xe2c0,
   0x0,
   0x0,
   0x700,
   0x0
};

Si maintenant vous désirez afficher sous Intuition une structure Image, vous aurez recours au programme ILBM2func, qui non seulement générera la bitmap associée, mais également la structure Image correspondante et la fonction d'affichage dans une fenêtre dont le nom est Window. La fonction système utilisée pour l'affichage est bien sûr DrawImage().

ILBM2func toto ; où toto est le nom de votre fichier IFF

Ce qui donnera par exemple :

ILBM2Func
ILBM2Func

Que nous manque-t-il ? Les plus perspicaces d'entre vous auront remarqué qu'il nous manque la palette ou table des couleurs associée à notre dessin. Et c'est là qu'intervient le dernier utilitaire, à savoir GetCMap. GetCMap analyse un fichier IFF à la recherche de sa palette de couleurs et génère un fichier C déclarant un tableau de mots (UWORD), soit :

GetCMap

Le logiciel vous demande alors le nom du fichier ILBM (IFF) :

ILBM File name ?

Saisissez "toto". GetCMap demande alors le nom du fichier à générer :

C file name ?

Par exemple :

toto.c

Finalement, le résultat obtenu sera de la forme :

/* Image toto
   Width:   64
   Height:  58
   Depth:   4  */

USHORT map[] = {
   0x0000,
   0x0eca,
   0x0f00,
   0x0f16,
   0x0f1c,
   0x0c2e,
   0x072e,
   0x033e,
   0x066e,
   0x089d,
   0x0bbd,
   0x0aac,
   0x099b,
   0x099a,
   0x0889,
   0x0444 
};

Comme vous pouvez le voir, l'utilisation de ces programmes est enfantine, pour un résultat nécessitant des heures d'un travail fastidieux lorsque accompli manuellement.

Spright 1.2

Spright est un éditeur de sprites, créé par Todd Neumiller, qui permet de sauvegarder vos oeuvres sous forme de fichiers sources. Il s'agit d'un programme shareware que vous pourrez trouver sur la disquette Fish 484.

Spright
Spright

Spright permet de créer des sprites d'une hauteur variant de 1 à 200 pixels. Bien que la largeur d'un sprite soit limitée à 16 pixels, le logiciel possède un mode double, permettant d'éditer deux sprites côte à côte. Il permet également d'éditer des sprites attachés, pour obtenir par superposition des bitplanes, un sprite unique de 15 couleurs + transparence.

L'interface, très orientée Intuition, comporte deux boîtes : la première au centre de l'écran, permet de dessiner un sprite grossi quatre fois (pour faciliter de dessin). La deuxième boîte, sur le côté, affiche en permanence l'image taille réelle. Les fonctionnalités d'édition sont nombreuses.
  • DUAL : ce mode utilise deux sprites, placés côte à côte. Des couleurs différentes peuvent être utilisées pour chaque sprite si le gadget ATTACH n'est pas sélectionné.
  • SWITCH : en mode DUAL, ce gadget permet d'éditer alternativement l'un ou l'autre des deux sprites.
  • ATTACH : permet d'attacher un sprite à un autre. Ceci permet d'utiliser, par superposition des bitplanes 15 couleurs au lieu de trois (transparence exclue).
  • SAVE/LOAD : sauvegarde/chargement d'un sprite dans l'éditeur.
  • PRINT : impression de l'image zoomée.
  • SNAPSHOT/RESTORE : sauvegarde en mémoire d'un sprite. Ce sprite peut ensuite être rappelé à tout moment. Cette fonction est très utile en cas de fausse manipulation, ou si l'on veut effectuer un essai sans risquer de détruire l'oeuvre naissante. On utilise RESTORE pour récupérer l'image "snapshotée".
  • RGB Slider Gadget : ces trois gadgets permettent de régler les intensités RVB de chaque couleur.
  • COPY : permet de copier une zone de la boîte d'édition à une autre place.
  • ROTATE : autorise la rotation du sprite créé, soit vers la gauche soit vers la droite, par tranche de 90 degrés.
Plus, bien évidemment, les commandes standard de déplacement dans la page de dessin.

Après avoir dessiné un sprite dans l'éditeur, il faut utiliser la fonction SAVE qui va générer le source en C dont voici un exemple.

/* The sprite->height was 16   */

UWORD titi_Colors[32] = {
   0x000,
   0xfff,
   0xf00,
   0xff0,
   0x0f0,
   0x00f,
   0xf00,
   0xff0,
   0x0ff,
   0x0f0,
   0x00f,
   0xfOf,
   0xccc,
   0xddd,
   0xeee,
   0xfff,
   0x754,
   0xfff,
   0xf00,
   0xff0,
   0x0f0,
   0x00f,
   0xf00,
   0xff0,
   0xfff,
   0xfff,
   0xf00,
   0xff0,
   0x0f0,
   0x00f,
   0xf00,
   0xff0
};

UWORD titi_data[36] = {
   0     ,
   0     ,
   0x0000,
   0x0000,
   0x0000,
   0x0000,
   0x0000,
   0x7800,
   0x0000,
   0x4800,
   0x0000,
   0x4800,
   0x0210,
   0x7800,
   0x0310,
   0x480f,
   0x029f,
   0x480f,
   0x025f,
   0x480f,
   0x0236,
   0x0006,
   0x0216,
   0x0006,
   0x0216,
   0x0006,
   0x0006,
   0x0006,
   0x0006,
   0x0006,
   0x0000,
   0x0000,
   0x0000,
   0x0000

};

Comme l'indique le commentaire, la hauteur du sprite est de 16 pixels. Spright sauvegarde à la fois la table des couleurs et l'image associée, qui je vous le rappelle, ne possède pas du tout la même organisation que celle d'une image bitmap.

Image Editor 2.4

Ce programme, comme son nom l'indique, permet d'éditer directement des images afin de les sauvegarder sous forme de fichier source, en vue d'une inclusion dans un programme quelconque.

Image Editor
Image Editor 2.4

Le lancement d'Image Editor s'effectue sous Shell en tapant simplement "im24" puis sur la touche [Entrée]. Pour le quitter, tapez "q" ou cliquez dans le gadget de fermeture. Une requête apparaît alors, vous demandant une confirmation, que vous lui donnerez en cliquant sur le bouton "OK".

L'utilisation d'Image Editor est des plus simples puisqu'une fois l'image dessinée, il suffit de sélectionner le gadget Disk pour sauvegarder votre travail sous la forme d'un source C ou, c'est là sa grande originalité, sous la forme d'un source assembleur.

Au niveau de l'interface utilisateur, l'accès aux différentes fonctions peut se faire, soit grâce à la souris, soit par des raccourcis clavier, indiqués directement sur chaque gadget (exemple : "d" pour le gadget Disk). Il possède une ergonomie correcte.

Au niveau des fonctionnalités, Image Editor, permet de dessiner des images d'une taille maxi de 166*58 en haute résolution ou 83*58 en basse. Le nombre de couleurs possible est de 16 au maximum. Outre les possibilités classiques que nous sommes en droit d'attendre d'un tel programme (tracé, gomme, remplissage de surface, choix des couleurs...), Image Editor permet également de charger une Image IFF ILBM ou simplement la palette de couleurs qui lui est associée.

Petite déception toutefois, il faudra indiquer au pixel près la largeur et la hauteur de l'image que vous allez charger, ainsi que son nombre de bitplanes. Cette complication inutile est vraiment dommage, d'autant que toutes ces informations sont codées, bien évidemment, dans l'en-tête du fichier IFF. On se demande où voulait en venir le programmeur...

Un examen rapide du source, montre la qualité et le soin apportés à la programmation. Aucune astuce n'est en effet utilisée et le programme se sort sans plantage de tous les problèmes qu'il peut rencontrer (comme un manque de mémoire par exemple). Je vous conseille de l'étudier, il en vaut la peine.

Ce programme est disponible dans le domaine public, et plus précisément sur la disquette Fish 355. Il s'agit d'un logiciel shareware créé par Robert Junghans.

Et les autres...

Il existe bien entendu d'autres programme qui réalisent, avec plus ou moins de bonheur, ce travail. Je citerai, à titre informatif, les programmes suivants :

CITAS 2.0 (Fish 475)

Ce programme de Max Bithead convertit une image IFF en source assembleur ou C en vue de son pilotage par le Blitter.

IFF2Src (Fish 420)

IFF2src, de Jorrit Tyberghein, convertit des images IFF en source C ou assembleur, avec génération des bitplanes, masques Blitter, tables des couleurs. Il ne fonctionne que sous AmigaOS 2.0.

BI (Fish 375)

Ce petit programme de Terry Gintz convertit une brosse IFF ILBM en source C, tout simplement.

IFF2C (Fish 316)

Ce convertisseur d'image IFF en source C, créé par le duo français Gauthier Groult et Jean-Michel Forgeas, possède deux fonctionnalités intéressantes, la génération de commentaires associés à l'image et un calcul automatique des champs PlanePick et PlaneOnOff, nécessaires à l'utilisation de l'image par le GELS.


[Retour en haut] / [Retour aux articles]