Gdiplus GdipCreateBitmapFromStream utilisation [Résolu]

Messages postés
552
Date d'inscription
jeudi 28 novembre 2002
Dernière intervention
26 mars 2016
- - Dernière réponse : ToutEnMasm
Messages postés
552
Date d'inscription
jeudi 28 novembre 2002
Dernière intervention
26 mars 2016
- 13 mai 2013 à 21:17
Ce bout de code essaye de charger un fichier image (png,jpg..) mis en ressource et d'en sortir un bitmap.
Je connais les intructions à utiliser.
Ce que je ne sais pas ,c'est comment créer le pointeur m'autorisant à utiliser la fonction.
Merci pour la réponse.



#include <windows.h>
//#define GDIPVER 0x109
#include <gdiplus.h>
#include <stdio.h>
#include <conio.h>

using namespace Gdiplus;
#define images 1200

INT main()
{
HRSRC hResource;
HGLOBAL resource;
HGLOBAL PimageFile;
int taille;
int result;
HGLOBAL Hglob;
//Bitmap gdipImage;
LPSTREAM * ppvIStream = 0;
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;

hResource = FindResource(NULL,(LPCSTR)"monimage",(LPCSTR) "IMAGE");
resource = LoadResource(NULL, hResource);
PimageFile = LockResource(resource);
taille = SizeofResource(NULL, hResource);
Hglob = CoTaskMemAlloc(taille);
CopyMemory(Hglob,PimageFile,taille);
result=CreateStreamOnHGlobal(Hglob,TRUE,ppvIStream);
GdipCreateBitmapFromStream(ppvIStream,gdipImage); // comment faire ?
Afficher la suite 
A voir également:

Votre réponse

2 réponses

Meilleure réponse
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Dernière intervention
23 janvier 2016
20
3
Merci
Salut,

Tu peux utiliser un objet Gdiplus::Bitmap avec un construteur qui prend un ptr sur IStream (évite d'utiliser GdipCreateBitmapFromStream qui est récent)

// Il faut activer gdiPlus
Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

// Un bitmap
Gdiplus::Bitmap img(*ppvIStream, FALSE);

// Dessine sur un HDC
Gdiplus::Graphics grPanel(hdc);
grPanel.DrawImage(&img, 1, 1, img.GetWidth(), img.GetHeight());

// Il faut fermer gdiPlus
Gdiplus::GdiplusShutdown(gdiplusToken);


bye...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de yann_lo_san
Messages postés
552
Date d'inscription
jeudi 28 novembre 2002
Dernière intervention
26 mars 2016
1
0
Merci
le bout de code pour tranformer un fichier ressource en bmp.

  	hResource = FindResource(NULL,(LPCSTR)1200,(LPCSTR)RT_RCDATA);
      resource = LoadResource(NULL, hResource);
PimageFile = LockResource(resource);
taille = SizeofResource(NULL, hResource);
Hglob = CoTaskMemAlloc(taille);
CopyMemory(Hglob,PimageFile,taille);
result=CreateStreamOnHGlobal(Hglob,TRUE,&ppvIStream);
DllExports::GdipCreateBitmapFromStream((LPSTREAM)ppvIStream,&gdipImage);
DllExports::GdipCreateHBITMAPFromBitmap(gdipImage,&Hbmp,-1);

Vérifier au debugger,on a un BMP en fin de parcours.

a faire:tout libérer
Commenter la réponse de ToutEnMasm

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.