Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum PC » Programmation C/C++ DOS/Win32 » Ouvrir une bitmap (15 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Jfg Ecrit le: Mercredi 1er juin 2005 à 14:25 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


j'ouvre une bitmap avec le code suivant et je tente d'afficher certaines propriétés:

 
const char* s = "C:\\saluut.bmp";
FILE *f= fopen(s,"r");
H header;
fread(&header, 1,sizeof(H), f);

printf("%d|%d|%d|%d|%d|\n", header.h.type,header.h.size, header.h.reserved1, header.h.reserved2,header.h.offset);



avec:


typedef struct{
    unsigned short type;
    unsigned long size;
   unsigned short reserved1;
  unsigned short reserved2;
  unsigned long offset;   
}bmp_header_struct;

typedef struct {
  unsigned long header_size;
  long width;
  long height;
  unsigned short plane;//
  unsigned short bits;
  unsigned long compression;
  unsigned long byte_size;
  long x;
  long y;
  unsigned long colors_n;
  unsigned long colors_i;
}bmp_info_struct;

typedef struct {
bmp_header_struct h;
bmp_info_struct i;
}H;


la seule donnée affichée correctement est "header.h.type" ( =19778 ). Toutes les autres sont différentes de celle de ce site!
J'ai l'impression que les .bmp sont enregistrées différements sur mon ordi :D


Edit: "header.h.reserved2" a pour valeur 1078 :s
-Edité le Mercredi 1er juin 2005 à 14:47 par jfg-
Kill Mario
    
./Post n°1   Marquer comme non lu.
Jfg Ecrit le: Mercredi 1er juin 2005 à 19:51 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Je commence a un comprendre certains phénomènes... les nombres sont codés à "l'envers" #mur#
pour coder la taille, le 3e octet se remplie, puis le 4e puis le 5e et enfin le 6e...

Normalement ça ne devrais malgré tout ne pas poser de problèmes :|

edit: quoique... si ça pose problème :D
En tout cas je peux enfin calculer la taille des bitmaps...
h[2]+256*(h[3]+256*(h[4]+256*h[5]))
-Edité le Mercredi 1er juin 2005 à 21:18 par jfg-
Kill Mario
    
./Post n°2   Marquer comme non lu.
Jfg Ecrit le: Mercredi 1er juin 2005 à 23:15 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


le problème venait du fait que le putain de compilo inserait des octets entre les variables.
Kill Mario
    
./Post n°3   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 2 juin 2005 à 03:33 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Jfg :
Je commence a un comprendre certains phénomènes... les nombres sont codés à "l'envers" #mur#

C'est le x86 (little-endian), ça...
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°4   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 2 juin 2005 à 03:33 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Jfg :
le problème venait du fait que le putain de compilo inserait des octets entre les variables.

__attribute__((packed))
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°5   Marquer comme non lu.
Onur Ecrit le: Vendredi 24 juin 2005 à 08:44 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


Kevin Kofler :
Jfg :
Je commence a un comprendre certains phénomènes... les nombres sont codés à "l'envers" #mur#

C'est le x86 (little-endian), ça...


voila ce qui arrive quand on fait trop du 68k :D
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°6   Marquer comme non lu.
Jfg Ecrit le: Vendredi 24 juin 2005 à 09:01 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


(au passage, maintenant je lis les octets à la dur, sans passer par des structures. (càd que je prend par exemple le 12e octets, puis le 13e...)

J'ai aussi fini (il y a qlq heures :D) les fonctions pour convertir en gris:

http://www.tigen.org/jyaif/images/screen.PNG
Kill Mario
    
./Post n°7   Marquer comme non lu.
Onur Ecrit le: Vendredi 24 juin 2005 à 11:38 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


c bien tout ca mais pourquoi tu fais ca?
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°8   Marquer comme non lu.
Jfg Ecrit le: Vendredi 24 juin 2005 à 12:52 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Ben.. pour faire un convertisseur de bitmap couleur -> array de char.
Kill Mario
    
./Post n°9   Marquer comme non lu.
Onur Ecrit le: Vendredi 24 juin 2005 à 17:21 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  
  -- Post locké --
 
    
./Post n°10   Marquer comme non lu.
Jfg Ecrit le: Vendredi 24 juin 2005 à 18:15 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  
  -- Post locké --
 
    
./Post n°11   Marquer comme non lu.
Link Ecrit le: Samedi 25 juin 2005 à 20:07 Déconnecté(e)    Voir le profil de Link Envoyer un email à Link Visiter le site WEB de Link Envoyer un message privé à Link  

Conversion en array de char??
Tu veux vous faire un générateur d'ASCII Art ? #confus#

Au fait, pourquoi n'utilises-tu pas directement les structures BITMAPFILEHEADER et BITMAPINFOHEADER pour lire dans le fichier? Tu n'auras pas de problèmes d'alignement avec...

PS: Et oui, les données d'un BMP sont au format x86, et c'est sale. C'est vrai qu'il vaudrait mieux les convertir au format réseau (qui est le même pour toutes les architectures) à l'enregistrement...
    
./Post n°12   Marquer comme non lu.
Jfg Ecrit le: Samedi 25 juin 2005 à 22:18 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Conversion en array de char comme dans Image Studio.

Peut importe la structure que j'utiliser vu que le compilo insére des octets entre les variables. Kevin a suggéré d'utiliser "__attribute__((packed))" mais j'avais déja réglé le problème.
Kill Mario
    
./Post n°13   Marquer comme non lu.
Jfg Ecrit le: Dimanche 3 juillet 2005 à 09:40 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Voilà, je viens de finir de programmer la dernière méthode de tramage (suivant le principe de l' "error diffusion")
http://www.tigen.org/jyaif/images/tramed.PNG

ça donne de vraiment bon résultats lors des conversions en noir et blanc :)
Kill Mario
    
./Post n°14   Marquer comme non lu.
FpgForce Ecrit le: Dimanche 3 juillet 2005 à 10:44 Déconnecté(e)    Voir le profil de FpgForce Envoyer un email à FpgForce Envoyer un message privé à FpgForce  

génial #top#
    
./Post n°15   Marquer comme non lu.
Kevin Kofler Ecrit le: Dimanche 3 juillet 2005 à 15:49 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Les formules en niveaux de gris ont besoin d'être retravaillées à mon avis, les transitions sont trop brutales pour gris clair -> gris foncé et gris foncé -> noir (en revanche, blanc -> gris clair passe très bien).
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
  :: Index » Forum PC » Programmation C/C++ DOS/Win32 » Ouvrir une bitmap (15 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 41.99ms avec 18 requetes