社区
界面
帖子详情
位图文件的内容已经读入了内存,怎么显示该位图?
xunknown
2005-08-24 10:58:37
LoadImage已经没有用了.
因为位图文件已经读入了内存.
我是不是要自己分析这个位图文件数据块的内容啊?
有没有简单的方法?
...全文
191
7
打赏
收藏
位图文件的内容已经读入了内存,怎么显示该位图?
LoadImage已经没有用了. 因为位图文件已经读入了内存. 我是不是要自己分析这个位图文件数据块的内容啊? 有没有简单的方法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
王晓华-吹泡泡的小猫
2005-08-24
打赏
举报
回复
用CreateDIBSection 创建一个HBITMAP
bear_c
2005-08-24
打赏
举报
回复
CBitmap::CreateBitmapIndirect
BOOL CreateBitmapIndirect( LPBITMAP lpBitmap );
Return Value
Nonzero if successful; otherwise 0.
Parameters
lpBitmap
Points to a BITMAP structure that contains information about the bitmap.
将内存中位图信息填充到BITMAP结构中即可创建一个CBitmap对象。
njvisual
2005-08-24
打赏
举报
回复
CDC *pDC=GetDC();
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
HDC phDC = pDC->GetSafeHdc();//获得pStaic的HDC
HANDLE hBitmap = ::LoadImage(NULL, strMapFile, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE |
LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
ASSERT(hBitmap);
HANDLE OldBitmap=(HBITMAP)MemDC.SelectObject(hBitmap);
pDC->BitBlt(0,0,1100,1100,&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(OldBitmap);
guxingfeiyu
2005-08-24
打赏
举报
回复
WINGDIAPI int WINAPI StretchDIBits(
HDC hdc,
int XDest,
int YDest,
int nDestWidth,
int nDestHeight,
int XSrc,
int YSrc,
int nSrcWidth,
int nSrcHeight,
CONST VOID *lpBits,
CONST BITMAPINFO *lpBitsInfo,
UINT iUsage,
DWORD dwRop
);
xunknown
2005-08-24
打赏
举报
回复
void DisplayBimap( char * pBuffer, CWnd * pWnd, CRect * pRect )
{
if ( !pBuffer )
{
return;
}
ASSERT( pWnd );
if ( !::IsWindow(pWnd->m_hWnd) )
{
return;
}
CDC * pDC = pWnd->GetDC();
ASSERT( pDC );
if ( !pDC )
{
return;
}
CRect rect;
if ( !pRect )
{
pWnd->GetClientRect( &rect );
pRect = ▭
}
//// 显示位图
LONG bmpWidth;
LONG bmpHeight;
DWORD bfOffBits;
WORD biBitCount;
void *pBmpInfo;
void *lpvBufBmp;
bfOffBits = *( DWORD* )( pBuffer + 10 );
bmpWidth = *( LONG* )( pBuffer + 18 );
bmpHeight = *( LONG* )( pBuffer + 22 );
lpvBufBmp = pBuffer + bfOffBits;
pBmpInfo = pBuffer + 14;
biBitCount = *( WORD* )( pBuffer + 28 );
BITMAPINFO bmpInfo;
memcpy( &bmpInfo.bmiHeader, pBmpInfo, 40 );
bmpInfo.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
#if 1
::StretchDIBits( pDC->m_hDC,
pRect->left, pRect->top, pRect->Width(), pRect->Height(),
0, 0, bmpWidth, bmpHeight,
lpvBufBmp, &bmpInfo, DIB_RGB_COLORS, SRCCOPY );
#else
BITMAP bitmap;
bitmap.bmType = 0;
bitmap.bmWidth = bmpInfo.bmiHeader.biWidth;
bitmap.bmHeight = bmpInfo.bmiHeader.biHeight;
bitmap.bmWidthBytes = bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount / 8;
bitmap.bmPlanes = bmpInfo.bmiHeader.biPlanes;
bitmap.bmBitsPixel = bmpInfo.bmiHeader.biBitCount;
bitmap.bmBits = lpvBufBmp;
//// HBITMAP hbitmap = ::CreateBitmapIndirect( &bitmap );
HBITMAP hbitmap = ::CreateBitmap( bmpWidth, bmpHeight, bitmap.bmPlanes, bitmap.bmBitsPixel, bitmap.bmBits );
DisplayBimap( hbitmap, pWnd, pRect );
DeleteObject( hbitmap );
#endif
}
这样写的函数显示出来的图片不正常
我应该怎么更正?
xunknown
2005-08-24
打赏
举报
回复
我的函数是
DisplayBitmap( const char * pBuffer, size_t szSize, CWnd * pWnd )
{
pBuffer所指向的内容就是一个完整的BMP文件的内容
我要把这个BMP显示在pWnd上.
我怎么样把pBuffer的数据传给CreateDIBSection?
}
benbebnmao
2005-08-24
打赏
举报
回复
对,用CreateDIBSection(),返回一个HBITMAP,然后再HBITMAP)MemDC.SelectObject(hBitmap),
最后bitblt().就可以了
这些函数的具体用法看msdn吧。很简单的
VC++6.0 打开
位图
文件
源代码 BMP图像数据的读取与
显示
在本文中,我们将深入探讨如何使用VC++ 6.0打开和
显示
位图
(BMP)文件。
位图
文件
是一种常见的图像格式,广泛应用于各种图形处理应用中。VC++ 6.0是一款经典的Microsoft Visual Studio集成开发环境,它提供了丰富的...
读取并
显示
位图
,直接操纵
显示
图像数组中的每一位像素
3. 分配
内存
来存储
位图
数据,然后使用`CreateDIBSection`函数创建一个DIB(设备无关
位图
),将
位图
数据
读入
到这个DIB中。 4. 获取`StretchDIBits`所需的参数,包括源
位图
信息结构(BITMAPINFO)和
位图
数据指针。 5. ...
MFC读
位图
像素到二维数组,将数组中像素
显示
位图
本主题聚焦于如何使用MFC来处理
位图
图像,具体涉及从BMP文件读取像素到二维数组,然后将数组中的像素重新
显示
为
位图
,并验证其正确性。同时,还将像素值写入文本文件以供检查。 首先,我们需要了解BMP文件格式。BMP...
易语言图片快速分割
易语言图片快速分割源码系统结构:取
内存
位图
局部
位图
,A2W,转换图像格式,转换图像格式2,复制
内存
_复制
位图
信息头到字节集,复制
内存
_复制
位图
文件
头到字节集,GdiplusStartup,GdiplusShutdow
200个经典C程序【源码】
038 同时
显示
两个文件的
内容
039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序...
界面
15,978
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章