2010-02-24 7 views
1
Bitmap bmp(100,100, PixelFormat32bppARGB); 
    bmp.SetPixel(2,2,Gdiplus::Color::AliceBlue); 
    int x = bmp.GetHeight(); 
    int y = bmp.GetWidth(); 
    Gdiplus::Color* ccc = new Gdiplus::Color; 
    Gdiplus::Color* ccc2 = new Gdiplus::Color; 
    bmp.GetPixel(2,2,ccc); 
    bmp.GetPixel(0,0,ccc2); 

Dans l'exemple de code précédent, les propriétés bitmap apparaissent toujours comme si elles étaient nulles. la hauteur et la largeur sont toujours nulles et la couleur de chaque pixel est toujours la même. Quelle est la bonne façon de modifier les propriétés de l'image bitmap?Comment modifier les propriétés des bitmaps en C++

Répondre

2

Le constructeur que vous appelez ne remplit pas les données de pixel de votre bitmap. Vous devez appeler une version de bmp.FromX() après la construction pour remplir votre bitmap.

Alternativement, vous pouvez appeler un autre constructeur qui vous donne un bitmap rempli.

En outre, vous pouvez envelopper votre appel SetPixel() avec des appels à LockBits() et UnlockBits().

Lisez les spécifications here pour plus de détails.

+0

Merci pour le lien. J'ai essayé quelques fonctions comme bmp.GetHBITMAP (Color :: Azure, hBmpImage); mais ça ne marche toujours pas. Comment puis-je définir la largeur et la hauteur par exemple? –

+0

Vous pouvez recadrer ou mettre à l'échelle le bitmap avec différentes commandes. Par exemple, vous pouvez utiliser l'une des fonctions clone pour copier une partie d'un bitmap. Lisez la partie ci-jointe de la spécification pour plus d'exemples. Essayez exactement leur code, puis modifiez quelques paramètres, utilisez des constructeurs différents, et ainsi de suite jusqu'à ce que vous vous sentiez plus à l'aise pour jouer avec l'API. http://msdn.microsoft.com/fr-fr/library/ms533815%28VS.85%29.aspx – thebretness

Questions connexes