structure d'un bmp
Publié : jeu. 25/janv./2007 17:20
pour la gestion des textures pour DM3D j'utilise des images que je crée et modifie en memoire pour plus de souplesse mais je suis perdue avec le bmp voicie mon code pour crée une image de 2x2 .
(je me suis insipré de ce site)
si quelqu'un avait une idée de mon ereur sa maiderait bien.
(je me suis insipré de ce site)
si quelqu'un avait une idée de mon ereur sa maiderait bien.
Code : Tout sélectionner
Procedure CreateTextureInMemory(c4, c3, c2, c)
Protected *adr, *FileAdr
*adr = AllocateMemory(66)
*FileAdr = *adr
;premier header
PokeB(*adr, 66) ;B
*adr+1
PokeB(*adr, 77) ;M
*adr+1
PokeL(*adr, 66) ;taille de l'image
*adr+4
PokeB(*adr, 0) ;bfReserved1
*adr+1
PokeB(*adr, 0) ;bfReserved1
*adr+1
PokeB(*adr, 0) ;bfReserved2
*adr+1
PokeB(*adr, 0) ;bfReserved2
*adr+1
PokeL(*adr, 54) ;Offset des bits du bitmap dans le fichier
*adr+4
;second header
PokeL(*adr, 40) ;Taille de cette structure en octets
*adr+4
PokeL(*adr, 2) ;Largeur du bitmap en pixel.
*adr+4
PokeL(*adr, 2) ;Hauteur du bitmap en pixel
*adr+4
PokeW(*adr, 1) ;1
*adr+2
PokeW(*adr, 24) ;bits
*adr+2
PokeL(*adr, 0) ;compression (le reste du header est facultatif si 0)
*adr+4
PokeL(*adr, 0) ;taille du fichier (pour compression)
*adr+4
PokeL(*adr, 0) ;Résolution horizontale en pixels par mètre
*adr+4
PokeL(*adr, 0) ;Résolution verticale en pixels par mètre.
*adr+4
PokeL(*adr, 0) ;Nombre de couleurs utilisées dans l’image.
*adr+4
PokeL(*adr, 0) ;Nombre de couleurs importantes.
*adr+4
*adr+1
PokeB(*adr, Blue(c));bleu
*adr+1
PokeB(*adr, Green(c));vert
*adr+1
PokeB(*adr, Red(c));rouge
*adr+1
PokeB(*adr, Blue(c2));bleu
*adr+1
PokeB(*adr, Green(c2));vert
*adr+1
PokeB(*adr, Red(c2));rouge
*adr+1
PokeB(*adr, Blue(c3));bleu
*adr+1
PokeB(*adr, Green(c3));vert
*adr+1
PokeB(*adr, Red(c3));rouge
*adr+1
PokeB(*adr, Blue(c4));bleu
*adr+1
PokeB(*adr, Green(c4));vert
*adr+1
PokeB(*adr, Red(c4));rouge
ProcedureReturn *FileAdr
EndProcedure