salut VOW,
j'utilise cette structure mais j'ai un problème,
une fois mon image créer, elle à une résolution horizontale verticale étrange.
17986239ppp (variable) en horizontale et 1ppp en verticale, pour une profondeur de 24.
et des fois l'image n'est pas visible du tout, mais toujours impossible à ouvrir avec paint, fond blanc.
enfin bref j'ai récupere le code d'un collègue et ca me ferais gagner du temps si tu pouvais m'aider merci.
Ce que je voudrais ce que tu me donne un exemple avec des valeurs simple de toutes les variables. si c'est pas trop demander ^^
voici un bout du code :
// save bitmap file headers
BITMAPFILEHEADER fileHeader;
BITMAPINFOHEADER infoHeader;
désolé je n'avais pas l'intention d'attaquer l'auteur de ce code qui m'a été très utile, mais le(s) webmaster(s) qui a laissé un bug aussi ridicule dans son site, pour une communauté de developpers ça fait tâche. Soit dit en passant j'avais bien vu le bouton "copier coller", qui est une demi solution quand la plus part du temps on a besoin que d'une partie du code (et le copier coller est une fonction commune à toutes les application, il n'est pas naturel de l'utiliser comme fonction d'une app en particulier). cependant il est _hors de question_ que j'aille modifier les paramètres avancés de mon navigateur au risque de le dérégler pour obtenir une fonctionnalité qui devrait "aller de soi".
Le problème ne vient pas de ce code, mais de Firefox (tous les codes réagissent de cette manière)
Je te conseille d'utiliser le bouton "copier dans le presse papier" au-dessus de la zone de code ;=
Oui, mais avec ce que tu as mis dans cette source je doute qu'une débutant puisse utiliser les Bitmaps et les comprendre ! Y'a simplement la description de certaines structures, traduction française de http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_9qg5.asp. Les fonctions de manipulations de Bitmaps les plus utilisées seraient les bienvenues.
Pour répondre au dernier commentaire :
Bien sûr, j'aurais bien pu ajouter des exemples "lourds", mais ce n'était pas mon but. Surtout pour un niveau débutant ;)
Mouais, ni plus ni moins que la traduction de la documentation de la MSDN, c'est un peu dommage, je trouve que le sujet de Bitmaps est assez vaste sous Windows. Il aurait été souhaitable qu'il y ait plus d'informations et d'explications (différents types de Bitmaps, les Palettes, comment ça marche etc...). Des exemples d'utilisations pourraient aussi êtres utils. Je ne met pas de note, mais j'aurais sans doute mis un 1, dsl.
Slt!
Jaurai juste aimer savoir comment tu fait ap pr afficher ac un "printf" par ex les info comme la taille du fichier ou la taille de l'image!
merci davance ! ++
infoHeader.biCompression = 0; //BI_RGB;
infoHeader.biXPelsPerMeter = 0;
infoHeader.biYPelsPerMeter = 0;
infoHeader.biSizeImage = 0;
infoHeader.biClrUsed = 0;
infoHeader.biClrImportant = 0;
j'utilise cette structure mais j'ai un problème,
une fois mon image créer, elle à une résolution horizontale verticale étrange.
17986239ppp (variable) en horizontale et 1ppp en verticale, pour une profondeur de 24.
et des fois l'image n'est pas visible du tout, mais toujours impossible à ouvrir avec paint, fond blanc.
enfin bref j'ai récupere le code d'un collègue et ca me ferais gagner du temps si tu pouvais m'aider merci.
Ce que je voudrais ce que tu me donne un exemple avec des valeurs simple de toutes les variables. si c'est pas trop demander ^^
voici un bout du code :
// save bitmap file headers
BITMAPFILEHEADER fileHeader;
BITMAPINFOHEADER infoHeader;
ZeroMemory(&fileHeader, sizeof(BITMAPFILEHEADER));
fileHeader.bfType = 0x4d42;
fileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
infoHeader.biSize = sizeof(infoHeader);
infoHeader.biWidth = bitmap_dx;
infoHeader.biHeight = bitmap_dy;
infoHeader.biPlanes = 1;
infoHeader.biBitCount = 24;
infoHeader.biCompression = BI_RGB;
//infoHeader.biXPelsPerMeter = 0;
//infoHeader.biYPelsPerMeter = 0;
HANDLE hLogFile = CreateFile(filename, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL) ;
WriteFile(hLogFile, &fileHeader, sizeof(fileHeader) , &dwBytesWritten, NULL) ;
WriteFile(hLogFile, &infoHeader, sizeof(infoHeader) , &dwBytesWritten, NULL) ;
BITMAPINFO info;
info.bmiHeader = infoHeader;
HDC memDC = CreateCompatibleDC(winDC);
BYTE* memory = 0;
HBITMAP bitmap = CreateDIBSection(winDC, &info, DIB_RGB_COLORS, (void**)&memory, 0, 0);
SelectObject(memDC, bitmap);
BitBlt(memDC, 0, 0, bitmap_dx, bitmap_dy, winDC, 0, 0, SRCCOPY);
DeleteDC(memDC);
ReleaseDC(NULL, winDC);
je n'avais pas vu cette mention...
y a t il un modo dans la salle ?!