Les nombres binaires, hexadécimaux etc..
J'avoue mes dernières conversions datent de mes cours et ça fait un bail.
En gros, je ne maitrise plus grand chose.
Au niveau du code, effectivement, je me complique la vie. J'ai cherché le mot clé pouvant m'aider et la bonne syntaxe à l'époque.
Finalement, j'ai le même résultat avec:
num=Val(SSCar4,"d")
"Pourquoi faire simple qd je peux faire compliqué!"
(allez on dira que le jour où j'ai codé cette partie, gt très fatigué).
J'ai forcé les valeurs négatives comme tu l'as signalé et j'obtiens un offset Data à 1084 comme pour les autres. Cependant, j'ai tj une Bam très moche à l'écran (saleté de Bam).
Dès que une bam mal lue, j'ai une valeur négative qui est tj la même. En enlevant, le signe négatif j'ai 1084.
"
BAM V1 Données d'image
S'il ne s'agit pas d'une image compressée, il s'agit simplement de largeur * hauteur octets, qui désignent les valeurs pour chaque pixel à l'aide de la palette définie juste avant.
S'il s'agit d'une image compressée, les données sont compressées suivant un principe Run-Lenght-Encoding. Ce principe est le suivant :
- tout octet qui diffère de l'index de transparence défini dans l'en-tête représente sa propre couleur
- l'index de transparence suivi d'un octet x représente (x + 1) copies de l'index de transparence
Remarque : le principe du codage RLE est notamment expliqué ici. Il ne présente aucune grosse difficulté de codage dans le cas présent. Il s'agit simplement de répéter x + 1 fois un pixel de la couleur transparente.
Le point important non explicité est le fait que la palette comporte 256 couleurs, puisque la couleur de chaque pixel est codée sur 8 bits.
La fameuse couleur transparente est éventuellement définie dans l'en-tête. Si elle n'est pas définie, elle prendra pour valeur (dans la palette de 256 couleurs) la première entrée de la palette qui a un code RGB correspondant au vert (0, 255, 0). C'est pour ça que le vert apparaît fréquemment dans l'affichage des BAM dans les outils. Ce choix n'est sûrement pas anodin car il correspond à la couleur de transparence utilisée en fond au cinéma pour découper les acteurs afin de les superposer à d'autres images.
"
"
Structure du fichier BAM décompressé
"
0x0008 4 (dword) Offset frame data|Compressed
* bits 30-0: Offset to frame data
* bit 31: 0=Compressed (RLE), 1=Uncompressed
"
Dans le cas où j'ai une valeur négative on est donc en mode non compressé. Mon code est axé sur le compressé. J'ai fait un test rapide. C'est bon j'ai ma bam d'armure Orc.
J'avais pas vu de cas Non RLE à l'époque et j'ai du coup pas géré la partie code.
Existe t'il un hopital pour ceux que BG rend fou?
Merci de ton coup de main!
Au sujet de faire une partie claire sur les BAM, je suis toujours d'accord mais en ce moment, j'ai pas bcp de temps et j'essaie de tenir mon planning pour l'éditeur.
Coco