cs_ymerej
Messages postés165Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 5 octobre 2007
-
6 mai 2004 à 12:52
cs_ymerej
Messages postés165Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 5 octobre 2007
-
6 mai 2004 à 17:04
Bonjour,
je souhaite connaitre quel est le format d'image le plus simple a lire car en fait je veu récupérer une image en noir et blanc de 128 x 64 et voir pour chaque pixel est ce qu'il est blanc ou noir dc à 1 ou à 0.
BMP c pas trop compliqué mais pour les images en noir et blanc G pas trop compris comment ca marchait.
Alors si vous avez un autre format a me proposer ? Avec l'explication de la structure si possible, je suis preneur.
Sur ce, bon appetit !
@+
Ymerej
mop666
Messages postés46Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention27 février 2007 6 mai 2004 à 13:51
voila comment faire pour du noir et blanc (1 pixel = 1 bit)
le principe c est que si le bit est a 1, le pixel associe sera de la seconde couleur de la palette, sinon de la premiere...
/*
ici la couleur des bits 0 est blanc et noir pour les bit 1
*/
tu ecrit par la fonction fwrite...
ensuite ecrire les donnees:
d abord la largeur de ton image doit etre un multiple de 32...
dans notre cas on va ecrire les donnees par paquet de 32....
on doit ecrire les donnees de bas en haut, et de gauche a droite...
si par exemple on se sert d'un UINT pour ecrire les donnees, tu dois mettre par exemple la valeur du premier pixel sur le bit fort (le numero 31) ensuite le suivant va en 30....etc...jusqu a 0 puis on rempli un autre uint....
seulement voila:tu dois pas ecrire l'UINT directement: il faut l'ecrire par paquets d'octets en sens invers c est a dire que tu ecriras d abord les 8 bits forts (au dessus du 24 eme) ensuite ceux au dessus du 16 eme, ensuite ceux au dessus du 8 eme et enfin ceux en 0 (utilise la fonction putc)
...
voila, ca marche pour moi sous visual c++ 6 ...
@++
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ymerej
Messages postés165Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 5 octobre 2007 6 mai 2004 à 14:00
Hylvenir >> Ta pas compris, je ne veu surtout pas m'embeter avec de la couleur puiskil n'y en aura pas !
Je veu juste coder le noir et blanc pr que ca soit + simple !
mop666 >> dc ce que tu ma donné comme code c bien pr une bitmap ?
Merci au fait !
cs_ymerej
Messages postés165Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 5 octobre 2007 6 mai 2004 à 14:02
En fait je ne me suis pas fé assez comprendre, excusez moi je reexplik :
Je ne veu pas coder une image mais lire un fichier image.
Qui plus ets mon image sera en noir et blanc dc je demandais simplement quel format allait le mieux.
C tt.
Dc le BMP a l'air sympa !
mop666
Messages postés46Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention27 février 2007 6 mai 2004 à 14:06
ouic est cool le bmp...pour le lire t as qu a faire un fread sur un file header, puis un fread sur un info header, puis deux fread sur des RGBQUAD puis enfin tu lis tes donnees en prenant par 4 paquest d unsigned char (8 bits ) en les remettant dans l ordre:
le premier en haut, le deuxieme en dessous etc....enfin tu fais le chemin inverse quoi!
cs_ymerej
Messages postés165Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 5 octobre 2007 6 mai 2004 à 14:28
oui il a l'air interessant mais le truc c'est que je ne connais pas de logiciel qui permet d'enregistrer ou de convertir des images au format xpm.
A - que tu en conné ?
cs_ymerej
Messages postés165Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 5 octobre 2007 6 mai 2004 à 14:30
attend mais au fait il faut les redeclarer ses structures? Ou elle se trouve dans des librairies ?
Si oui merci de m'indiquer lesquelles car qd je fais
RGBQUAD palette[2];
dev c++ ne connait pas !
sinon:
comme je te disais, les pixels sont places du coin en bas a gauche au coin en haut a droite en parcourant les lignes:
le petit truc chiant c est que dans chaque paquet de 4 octets il y a un swap de fait i.e quand tu lis il faut faire(apres avoir lu headers et color quad...)
unsigned long read;
unsigned char temp;