Accueil > Forum > > > > Est-il possible de sauvegarder une HIMAGELIST en bmp
Est-il possible de sauvegarder une HIMAGELIST en bmp
vendredi 3 décembre 2004 à 11:56:15 |
Est-il possible de sauvegarder une HIMAGELIST en bmp

youpiyoyo
|
comme l'explique le titre j'aurai besoin de sauvegarder une HIMAGELIST ke je crée dans un prog et j'aimerais le save dans un bmp idée??? si vous avez une fonction n'hésiter po youpi :)
|
|
vendredi 3 décembre 2004 à 12:27:39 |
Re : Est-il possible de sauvegarder une HIMAGELIST en bmp

ymca2003
|
avec ImageList_GetImageInfo tu peux récupérer le HBITMAP interne avec les images de la liste dans la structure IMAGEINFO.
A partir de ce HBITMAP tu pouras le sauvegarder dans un fichier *.bmp un ex ici : http://www.cppfrance.com/codes/SCR2BMP/27874.aspx)
|
|
vendredi 3 décembre 2004 à 13:07:34 |
Re : Est-il possible de sauvegarder une HIMAGELIST en bmp

youpiyoyo
|
je te remercie je v jeter un coup d'oeil si j'ai des probleme je te recontact
youpi :)
|
|
vendredi 3 décembre 2004 à 13:29:36 |
Re : Est-il possible de sauvegarder une HIMAGELIST en bmp

youpiyoyo
|
ok maintenant mon probleme c de save une HBITMAP en BMP :D
j'ai fais ca
IMAGEINFO FAR *pImageInfo; ImageList_GetImageInfo( himl2, 0, pImageInfo ); j'ai mon HBITMAP (pImageInfo->hbmImage) mais comment le sauvegarder j'ai regarder le code et il me mank des info sur la dimension (L*l) dans le source ke tu m'as donner
youpi :)
|
|
vendredi 3 décembre 2004 à 13:55:10 |
Re : Est-il possible de sauvegarder une HIMAGELIST en bmp

youpiyoyo
|
j'ai testé ca fourni par msdn
IMAGEINFO FAR *pImageInfo; ImageList_GetImageInfo( himl2, 0, pImageInfo ); HDC Hdcc=GetDC(NULL); PBITMAPINFO bitmpinfo=CreateBitmapInfoStruct(0,pImageInfo->hbmImage); CreateBMPFile(mainHwnd, "D:\\Bureau\\", bitmpinfo, pImageInfo->hbmImage, Hdcc);
ou les fonction sont celle-ci void CreateBMPFile(HWND hwnd, LPTSTR pszFile, PBITMAPINFO pbi, HBITMAP hBMP, HDC hDC) { HANDLE hf; // file handle BITMAPFILEHEADER hdr; // bitmap file-header PBITMAPINFOHEADER pbih; // bitmap info-header LPBYTE lpBits; // memory pointer DWORD dwTotal; // total count of bytes DWORD cb; // incremental count of bytes BYTE *hp; // byte pointer DWORD dwTmp;
pbih = (PBITMAPINFOHEADER) pbi; lpBits = (LPBYTE) GlobalAlloc(GMEM_FIXED, pbih->biSizeImage);
// Retrieve the color table (RGBQUAD array) and the bits // (array of palette indices) from the DIB. GetDIBits(hDC, hBMP, 0, (WORD) pbih->biHeight, lpBits, pbi, DIB_RGB_COLORS) ;
// Create the .BMP file. hf = CreateFile(pszFile, GENERIC_READ | GENERIC_WRITE, (DWORD) 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); hdr.bfType = 0x4d42; // 0x42 = "B" 0x4d = "M" // Compute the size of the entire file. hdr.bfSize = (DWORD) (sizeof(BITMAPFILEHEADER) + pbih->biSize + pbih->biClrUsed * sizeof(RGBQUAD) + pbih->biSizeImage); hdr.bfReserved1 = 0; hdr.bfReserved2 = 0;
// Compute the offset to the array of color indices. hdr.bfOffBits = (DWORD) sizeof(BITMAPFILEHEADER) + pbih->biSize + pbih->biClrUsed * sizeof (RGBQUAD);
// Copy the BITMAPFILEHEADER into the .BMP file. WriteFile(hf, (LPVOID) &hdr, sizeof(BITMAPFILEHEADER), (LPDWORD) &dwTmp, NULL);
// Copy the BITMAPINFOHEADER and RGBQUAD array into the file. WriteFile(hf, (LPVOID) pbih, sizeof(BITMAPINFOHEADER) + pbih->biClrUsed * sizeof (RGBQUAD), (LPDWORD) &dwTmp, ( NULL));
// Copy the array of color indices into the .BMP file. dwTotal = cb = pbih->biSizeImage; hp = lpBits; WriteFile(hf, (LPSTR) hp, (int) cb, (LPDWORD) &dwTmp,NULL);
// Close the .BMP file. CloseHandle(hf);
// Free memory. GlobalFree((HGLOBAL)lpBits); }
PBITMAPINFO CreateBitmapInfoStruct(HWND hwnd, HBITMAP hBmp) { BITMAP bmp; PBITMAPINFO pbmi; WORD cClrBits;
// Retrieve the bitmap color format, width, and height. GetObject(hBmp, sizeof(BITMAP), (LPSTR)&bmp);
// Convert the color format to a count of bits. cClrBits = (WORD)(bmp.bmPlanes * bmp.bmBitsPixel); if (cClrBits == 1) cClrBits = 1; else if (cClrBits <= 4) cClrBits = 4; else if (cClrBits <= 8) cClrBits = 8; else if (cClrBits <= 16) cClrBits = 16; else if (cClrBits <= 24) cClrBits = 24; else cClrBits = 32;
// Allocate memory for the BITMAPINFO structure. (This structure // contains a BITMAPINFOHEADER structure and an array of RGBQUAD // data structures.)
if (cClrBits != 24) pbmi = (PBITMAPINFO) LocalAlloc(LPTR, sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * (1<< cClrBits));
// There is no RGBQUAD array for the 24-bit-per-pixel format.
else pbmi = (PBITMAPINFO) LocalAlloc(LPTR, sizeof(BITMAPINFOHEADER));
// Initialize the fields in the BITMAPINFO structure.
pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); pbmi->bmiHeader.biWidth = bmp.bmWidth; pbmi->bmiHeader.biHeight = bmp.bmHeight; pbmi->bmiHeader.biPlanes = bmp.bmPlanes; pbmi->bmiHeader.biBitCount = bmp.bmBitsPixel; if (cClrBits < 24) pbmi->bmiHeader.biClrUsed = (1<<cClrBits);
// If the bitmap is not compressed, set the BI_RGB flag. pbmi->bmiHeader.biCompression = BI_RGB;
// Compute the number of bytes in the array of color // indices and store the result in biSizeImage. // For Windows NT, the width must be DWORD aligned unless // the bitmap is RLE compressed. This example shows this. // For Windows 95/98/Me, the width must be WORD aligned unless the // bitmap is RLE compressed. pbmi->bmiHeader.biSizeImage = ((pbmi->bmiHeader.biWidth * cClrBits +31) & ~31) /8 * pbmi->bmiHeader.biHeight; // Set biClrImportant to 0, indicating that all of the // device colors are important. pbmi->bmiHeader.biClrImportant = 0; return pbmi; }
ca merde sur PBITMAPINFO bitmpinfo=CreateBitmapInfoStruct(0,pImageInfo->hbmImage); me di ke la memoire ne peut etre read!!!
une idée??????? youpi :)
|
|
vendredi 3 décembre 2004 à 14:43:32 |
Re : Est-il possible de sauvegarder une HIMAGELIST en bmp

ymca2003
|
Pour récupérer la taille d'un bitmap : HBITMAP hBmp; BITMAP bmpInfo; GetObject(hBmp, sizeof(BITMAP), &bmpInfo); BITMAPINFOHEADER bmih, bmih.biSize = sizeof(BITMAPINFOHEADER); bmih.biWidth = bmpInfo.bmWidth; bmih.biHeight = bmpInfo.bmHeight; bmih.biBitCount = 24 bmih.biCompression = BI_RGB; bmih.biPlanes = 1; bmih.biSizeImage = 0; bmih.biXPelsPerMeter = 0; bmih.biYPelsPerMeter = 0; bmih.biClrUsed = 0; bmih.biClrImportant = 0; BITMAPINFO bmi; bmi.bmiHeader = bmih;
// nombre d'octets par ligne (doit être multiple de 4) DWORD dwBPL = 4*(((bmpInfo.bmWidth*3)+3)/4); BYTE* pPixels = new BYTE[dwBPL*bmpInfo.bmHeight];
HDC hdc = GetDC(NULL); GetDIBits(hdc, hBmp, 0, bmpInfo.bmHeight, pPixels, &bmi, DIB_RGB_COLORS));
BITMAPFILEHEADER bhf; bfh.bfType = 0x4d42; bfh.bfReserved1 = 0; bfh.bfReserved2 = 0; bfh.bfOffBits = sizeof(BITMAPINFOHEADER); bfh.bfSize = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER) + dwBPL*bmpInfo.bmHeight; DWORD dwTmp; WriteFile(hFile, &bfh, sizeof(BITMAPFILEHEADER), &dwTmp, NULL); WriteFile(hFile, &bmih, sizeof(BITMAPINFOHEADER), &dwTmp, NULL); WriteFile(hFile, pPixels, dwBPL*bmpInfo.bmHeight, &dwTmp, NULL);
|
|
|
vendredi 3 décembre 2004 à 16:01:37 |
Re : Est-il possible de sauvegarder une HIMAGELIST en bmp

youpiyoyo
|
c bon je viens de trouver
le probleme venait de la...
IMAGEINFO pImageInfo; ImageList_GetImageInfo(himl2,20,&pImageInfo); HDC Hdcc=GetDC(NULL); PBITMAPINFO bitmpinfo=CreateBitmapInfoStruct(0,pImageInfo.hbmImage); CreateBMPFile(mainHwnd, "D:\\Bureau\\tmp.bmp", bitmpinfo, pImageInfo.hbmImage, Hdcc); moi et les pointeur lol :D youpi :)
|
|
Cette discussion est classée dans : possible, bmp, sauvegarder, himagelist
Répondre à ce message
Sujets en rapport avec ce message
Comment sauvegarder dans un fichier [ par AryCooL ]
Bonjour tout le monde,Je suis débutant et je voudrais savoir s'il est possible de sauvegarder une classe dans un fichier (en CPP).Si oui comment fait-
Est-il possible d'afficher une image bmp à partir d'un projet Win32 Console Application ? [ par iris00 ]
tout est dans la question.... :)
inserer une image . bmp [ par kikaanouar ]
je vx savoir est ce que c 'est possible d inserer une image .bmp dans un programme fait en langage c avec le mode graph si c possible est ce que vous
Conversion JPEG -> BMP [ par ygor ]
Bonjour, Je recherche donc un source ou des expliquations pour convertir du jpeg en bmp. si possible le source le plus cours possible et le plus deta
fichier bmp [ par pmolina ]
bonjour,j'utilise plusieurs images pour une interface graphique et donc plusieurs fichiers bmp.Je me demande s'il est possible de rassembler ces image
Fonctions Miroir et Flip sur une image BMP [ par calas ]
Salut à tous,Je suis à la recherche d'une fonction simple sous C++ Builder qui permettrait d'inverser une image BMP en droite-gauche ou haut-bas... qu
Mono Document Important plzzzzz :s [ par FlamZeNioub ]
Slt,est-ce que quelqu'un pourrait me dire si c'est possible d'inserer une image dans la page principale d'un mono document histoire de remplacer le vi
Version de programme sous Visual 97 [ par themaste ]
Salut a tous!Voila, je viens de récupérer un vieux programme dont je dois faire des mise à jour. Je dois bosser sous visual studio 97, et je n'arrive
Sauvegarder des infos [ par progmaster ]
Bonjours,je voudrais savoir comment je fais pour sauvegarder des infos. Je m'explique je construit un annuaire et je voudrais sauvegarder les noms et
erreur ImageList_Create [ par maevasa ]
bonjour, j'ai une erreur sur ce code et il ne veut même pas m'ouvrir le débug.et lorsque je mets hImageList=ImageList_Create(32,32,ILC_COLORDDB | ILC_
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|