[MFC]文件贴图的疑惑

mconetemp 2011-07-27 05:06:36
小弟菜鸟,刚刚接触MFC不久,现在有个问题,就是我用读文件的方法,把一个bmp里面的内容读入一个BYTE数组(文件头信息头调色板都去掉了,只有像素矩阵部分),现在我想通过这个数组进行贴图,不知道有什么方法么?提前谢谢各位了!

PS,因为这个数组的内容被处理过了,我直接保存为bmp再从文件贴图没问题,但是就是太慢了,所以我想直接贴,希望各位大牛们帮帮我啊,谢了!~~~~~~~
...全文
131 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mconetemp 2011-08-02
  • 打赏
  • 举报
回复
恩,谢谢ls了……虽然木有人真正回答了我的问题,我换了一种方法解决了……
allenhiman 2011-08-01
  • 打赏
  • 举报
回复
如果用GDI+可能更简单吧

IStream * pStream = NULL;
::CreateStreamOnHGlobal( hMem, FALSE, &pStream);
pImage = Image::FromStream(pStream);

其中hMem就是你的那个BMP文件的BYTE*
allenhiman 2011-08-01
  • 打赏
  • 举报
回复
CBrush::CreateDIBPatternBrush

// Resource handle to bitmap.
HRSRC hRes;
// Global handles to bitmap resource.
HGLOBAL hData;
void* hLockedData;
CBrush brush;

// Find the resource handle.
hRes = ::FindResource(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDB_BRUSH), RT_BITMAP);
if (hRes != NULL)
{
// Lock and Load (or Load and Lock).
if (((hData = ::LoadResource(AfxGetResourceHandle(),
hRes)) != NULL) &&
((hLockedData = ::LockResource(hData)) != NULL))
{
// Initialize the brush.
brush.CreateDIBPatternBrush((const void*)hLockedData,
DIB_RGB_COLORS);

// Select the brush into the device context.
CBrush* pOldBrush = pDC->SelectObject(&brush);

// Draw.
pDC->Rectangle(50, 50, 200, 200);

// Restore the original device context.
pDC->SelectObject(pOldBrush);

// Free the resource.
::FreeResource(hLockedData);
}
}
mconetemp 2011-08-01
  • 打赏
  • 举报
回复
up~大牛在哪呢~
mconetemp 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 topsupper 的回复:]
可以使用这个函数SetDIBits
具体用法查MSDN
祝你好运!
[/Quote]

但是里面有个BITMAPINFO我不知道怎么得到……infoheader我可以,但是这个类不知道怎么构造啊
Liekkas 2011-07-29
  • 打赏
  • 举报
回复
catyou 2011-07-29
  • 打赏
  • 举报
回复
有例子,在网上找一下,很好找的
Topsupper 2011-07-29
  • 打赏
  • 举报
回复
可以使用这个函数SetDIBits
具体用法查MSDN
祝你好运!
Wang471981125 2011-07-29
  • 打赏
  • 举报
回复
mconetemp 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jiashilong_syit 的回复:]
这么复杂 不是现实位图吗?不是用BilBit(.....)吗?
[/Quote]


位图贴图的源数据是bmp文件时我会,如果就给了一段BYTE*数组,外加文件头信息头要怎么办呢
mconetemp 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 rjw1900 的回复:]
去看看我的资源里 有一个例子
[/Quote]

能给个链接么
jiashilong_syit 2011-07-28
  • 打赏
  • 举报
回复
这么复杂 不是现实位图吗?不是用BilBit(.....)吗?
树先生1991 2011-07-28
  • 打赏
  • 举报
回复
去看看我的资源里 有一个例子
mconetemp 2011-07-28
  • 打赏
  • 举报
回复
自己顶一下……
mconetemp 2011-07-27
  • 打赏
  • 举报
回复
我现在想的是能不能把矩阵转化为 CBitmap 再显示,但是我发现我用CreateBitmap产的的Cbitmap*无法用Seleceobject选入,所以就没法显示了……

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧