来自Bitmap的GDI + C ++纹理画笔图案

时间:2014-05-30 16:40:34

标签: c++ gdi+ brush

我一直试图这样做几天。谷歌在任何地方都没有答案。

问题是我需要将Image类型作为TextureBrush中的参数传递。我只有一个HBITMAP。我看了很多可能性而没有成功。

这就是我所拥有的:

// change my HBITMAP to GDI+ BITMAP
Bitmap bmpTestingIt(hbmBGTiles, NULL);

Graphics g(buffer.getBufferDC());
//Image image(L"C:/Users/Owner/Pictures/testbmp.bmp"); // This works but not what I need
//Image image(bmpTestingIt); // No
//Image image((Image)bmpTestingIt); // No
Rect rct(0, 0, bmpTestingIt.GetWidth(), bmpTestingIt.GetHeight());
TextureBrush brush(&image, rct);
g.FillRectangle(&brush, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);

非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

Bitmap inherits from Image 以来,我不清楚为什么需要任何评论行。相反,只需使用&bmpTestingIt代替&image。只需确保Bitmap正确constructing HPALETTE如果它不是与设备无关的位图,则应归结为{{1}};如果是DIB,你很好。