Cet éditeur a été inventé par Frédéric WANG pour permettre l'utilisation d'images dans nos jeux QBASIC. Il s'agit de l'ancien format FWC, dont l'innovation consistait dans la possibilité d'enregistrer plusieurs images dans un même fichier, alors que l'ancien format FWB se contentait d'une seule image. D'ailleurs, cet éditeur est capable de charger des fichier FWB pour pouvoir les enregistrer dans un fichier FWC... Plus bas, vous trouverez des des explications détaillées sur ces deux formats sont données.
Cet éditeur n'a servi pour aucun jeu terminé, puisque ceux auquels il était destiné n'ont pas été achevés (un projet de jeu d'espionnage, de jeu de rôle et de plate-forme avec « Dino-Croc »), et le format d'image a été abandonné au profit du format FWA, à cette période où je testais à chaque fois de nouvelle méthode d'enregistrement. Malgré cela, j'ai décidé de mettre en ligne cet éditeur accompagné de sa source et des images qui avaient été faites avec, au cas où des visiteurs voudraient jeter un coup d'oeil dessus...
Exécuter le programme IMG_FWC.EXE pour utiliser l'éditeur sans souris. Si vous possédez le QBASIC, vous pouvez aussi exécutez les fichiers IMG_FWC.BAS ou IMG_FWC_souris.BAS (éditeur avec la souris) en plaçant tous les fichiers dans le répertoire du QBASIC.
Au démarrage, le programme demande dans quel fichier FWC vous voulez travailler. Vous pouvez alors ouvrir un fichier existant (huit lettres maximum, sans l'extension) : rentrez par exemple "EXEMPLES". Si le fichier n'a pas été trouvé, l'éditeur vous propose de le créer ; utilisez les touches "O" ou "N" pour valider (le programme redémarre après la création) ou refuser (le programme s'arrête)...
L'écran principal du programme se divise en plusieurs parties (voir ci-dessous). A gauche, vous voyez une grille comportant l'image chargée, avec en dessous, le nom du fichier (ici "PERSO 01") ainsi que le numéro de l'image dans ce fichier (ici c'est l'image N°3). A droite, se trouve les informations sur les coordonnées du pixel (ici X = 12 et Y = 14), sur l'heure (ici 11 H 26) et la couleur sélectionnée (ici par le numéro 16 et un cube noir). Plus bas, on trouve les différentes commandes possibles avec une lettre jaune pour connaitre la touche à appuyer. Enfin tout à droite, se trouve un barre verticale qui est la palette des 186 couleurs proposées, le point rouge indiquant celle qui est sélectionnée.

La touche "Q" permet de quitter le programme mais n'avertit pas si vous n'avez rien sauvegardé. Les touches "R" et "E" permettent de retourner l'image respectivement verticalement et horizontalement. La touche "M" offre quant à elle le choix du numéro de l'image. Pressez-là, sélectionnez un numéro de 1 à 20 à l'aide des touches "-" et "+", puis validez votre choix avec la touche "Entrée".
Pour ce qui est du curseur, vous le déplacez naturellement avec les flèches. Les touches de retour au début de ligne, la touche "Fin", "Page Précédente" ou "Page Suivante" permettent de se placez aux limites de l'images. Avec la souris, vous pouvez faire un clic gauche sur une case, pour positionner directement le curseur dessus.
Le choix de la couleur s'effectue avec les touches "-" et "+". Cela n'est pas très rapide, mais comme normalement l'éditeur dispose d'une souris, on peut cliquer directement sur une couleur dans la palette à droite, ou récupérer une couleur déjà présente dans l'image en faisant un clic droit sur un pixel de l'image.
Pour changer le pixel où le curseur est positionné, vous pouvez soit appuyer sur la touche "Entrée" pour qu'il prenne la couleur sélectionnée, soit appuyer sur la barre d'espacement pour qu'il devienne de couleur transparente. Cependant, si vous appuyez une fois sur "Inser", vous n'aurez pas besoin de presser à chaque fois la touche "Entrer", puisque chaque pixel où vous placerez le curseur changera automatiquement de couleur. Pour annuler cet effet, il suffit évidemment de rappuyer une nouvelle fois sur la touche "Inser". Avec la souris, il faut appuyez simultanément sur les boutons droit et gauche ; il est conseillé de faire un clic gauche sur le pixel à mettre en couleur, puis sans relacher le bouton gauche de la souris, d'appuyez sur le bouton droit...
Pour ouvrir un fichier FWC, appuyez sur la touche "C". Vous retournerez alors à l'écran initial où vous pourrez changer le fichier sur lequel vous désirez travailler. Attention, aucun n'avertissement n'est donné si vous avez oublié d'enregistrer vos modifications...
En ce qui concerne l'enregistrement de l'image, utiliser la touche "S". Les images contenues dans le fichier FWC, numérotées de 1 à 20, apparaissent à l'écran. Placez le curseur en forme d'étoile jaune sur une image et appuyez sur la touche "Entrée" pour la remplacer par celle que vous êtes en train de faire. Une fois terminé, servez vous de la barre d'espacement pour revenir à l'écran d'édition. Dans tous les cas, on vous demandera de sauvegarder ou non le fichier FWC, répondez par oui (touche "O") ou non (touche "N").
La dernière possibilité de l'éditeur est de pouvoir charger des images FWB (il fallait bien assurer la transition entre les deux formats...). Pour cela, pressez la touche "I". On vous demande alors le nom du fichier FWB (huit lettres maximum). Si le fichier n'est pas trouvé, le programme s'arrête, sinon l'image FWB est chargée et convertie en format 16 × 24 : si elle est trop petite, elle est complétée par des pixels en couleur transparente, si elle est trop grande, seule la partie supérieure gauche est prise en compte.
Ces deux formats d'images ont été créés par Frédéric WANG, à l'époque où on utilisait le QBASIC, avec l'emploi de l'ancienne syntaxe de l'instruction OPEN, de sorte que les fichiers ne sont pas enregistrés en mode binaire mais en mode texte. Cela reste dans la logique des premières images de nos jeux, où les données étaient directement dans le code source, sous forme de tableaux de chaîne de caractères. De la même façon, les fichiers n'ont pas de palette interne puisque les images prennent les 256 couleurs du QBASIC en mode d'écran 13. Enfin, leur structure étant assez primitive, ces formats ne comportent aucune compression.
Du fait du type de codage des fichiers images, vous pouvez les ouvrir avec un traitement de texte : vous verrez alors que chaque bloc d'informations est une chaîne de caractère entre guillemets. De plus, les caractères ayant un code ASCII peu élevé étant réservés aux caractères spéciaux (par exemple touche entrée de code ASCII 13), il avait été décidé que la couleur 0 soit codée par le code ASCII du caractère "0" c'est-à-dire 48. Ensuite le "1" de code ASCII 49 code pour la couleur 1, le "2" pour la couleur 2 et ainsi de suite jusque qu'à (théoriquement) le code ASCII 256 qui code pour la couleur 208. En fait, les images se servent de moins de 209 couleurs : sur l'éditeur FWC, il y en a 186 disponibles. Pour le format FWB, cela devait sûrement être pareil, mais je n'ai pas retrouvé l'éditeur...
Un fichier FWB ne pouvait stocker qu'une et une seule image. Celle-ci peut en théorie avoir des dimensions "illimitées" bien que l'éditeur correspondant ne devait permettre de fabriquer que de petites images. Quand au nombre de couleur, il ne peut en avoir que 209 couleurs différentes au maximum, comme dit précédemment.
Une ligne de l'image est représentée par une chaîne de caractère entre guillemets, suivie d'un saut de ligne. Chaque caractère représente un pixel de l'image Par exemple, pour une image 5 × 5 d'une croix verte, le fichier contiendra le texte suivant :
"a000a" "0a0a0" "00a00" "0a0a0" "a000a"
Voyons comment s'effectue le calcul du poids du fichier pour une image de dimensions X × Y... Chaque ligne comporte deux octets pour les guillemets (code ASCII 34), deux pour le saut de ligne (code ASCII 13 puis 10) et X pour les pixels de la ligne. Comme il y a Y lignes, cela fait (X + 4) × Y octets pour une image. Par exemple l'image FWS.FWB de dimensions 16 × 7 fait (16 + 4) × 7 = 140 octets. On voit clairement qu'il y a du "gaspillage d'octets" du fait du codage en mode texte...
Les dimensions des images en pixels sont de 16 × 24, ce qui correspondait à 2 caractères sur 3 en mode d'écran 13. Le mode d'enregistrement est le même que pour le format FWB, mais cette fois pour chaque ligne, la chaîne de caractère entre guillemets code pour une image entière. Chacune fait donc 388 octets : 2 pour les guillemets, 16 × 24 = 384 pour les pixels de l'image et 2 octets pour le saut de ligne (code ASCII 13 et 10). Comme il y a 20 images dans le fichier, cela fait 20 × 388 = 7760 octets. Les fichiers FWC ont donc un poids fixe de 7760 octets. Là encore, on gaspille 4 × 20 = 80 octets.
Si vous ouvrez le fichier avec un traitement de texte, il est plus difficile de distinguer la forme des images qui sont sur une ligne !