社区
界面
帖子详情
位图文件的内容已经读入了内存,怎么显示该位图?
xunknown
2005-08-24 10:58:37
LoadImage已经没有用了.
因为位图文件已经读入了内存.
我是不是要自己分析这个位图文件数据块的内容啊?
有没有简单的方法?
...全文
225
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吧。很简单的
数学建模数据集全国公交线路站点数据
数学建模数据集全国公交线路站点数据
pg工具巡检报告兼容多个版本
pg工具巡检报告兼容多个版本
基于白鲸优化算法(BWO)优化CNN-BiGUR-Attention风电功率预测研究(Matlab代码实现)
内容
概要:本研究聚焦风电功率预测领域,提出了一种基于白鲸优化算法(BWO)优化CNN-BiGRU-Attention复合模型的预测方法。该方法利用卷积神经网络(CNN)提取风电数据的局部时空特征,通过双向门控循环单元(BiGRU)捕捉时间序列的长期依赖关系,并引入注意力机制(Attention)动态调整不同时间步长的特征权重,从而提升预测精度。为进一步优化模型超参数,采用白鲸优化算法(BWO)对模型的学习率、网络层数、神经元数量等关键参数进行全局寻优,解决了传统经验调参效率低、效果差的问题,最终实现了对风电功率的高精度预测。; 适合人群:具备一定编程基础,熟悉机器学习与深度学习算法,从事新能源预测、电力系统调度或相关领域研究的研发人员和科研工作者。; 使用场景及目标:①针对风电等可再生能源出力的强随机性和波动性,实现高精度的功率预测;②为电力系统调度、储能配置、电网稳定性分析等提供可靠的数据支持;③为研究者提供一个结合先进优化算法与深度学习模型的完整实现范例,用于学术研究或工程应用。; 阅读建议:此资源以Matlab代码实现为核心,不仅展示了模型构建与优化的全过程,更强调了算法设计背后的逻辑与工程考量。学习者应在理解各模块(CNN、BiGRU、Attention、BWO)原理的基础上,动手实践并调试代码,重点关注数据预处理、模型超参数优化及结果可视化等环节,以达到最佳学习效果。
储能参与现货电能量-调频辅助服务市场的双层交易决策研究(Matlab代码实现)
内容
概要:本文研究了储能系统参与电力现货电能量市场与调频辅助服务市场的双层交易决策问题,提出了一种基于Matlab的双层优化模型与求解方法。上层模型以储能运营商收益最大化为目标,制定在两个市场中的联合投标策略;下层模型通过市场出清模拟,评估投标策略的可行性与收益,实现了策略优化与市场互动的闭环。研究通过IEEE标准算例验证了模型的有效性,结果表明该双层决策方法能有效提升储能系统的综合收益与市场竞争力。; 适合人群:具备电力市场、优化理论基础及Matlab编程能力的电力系统专业研究生、科研人员及从事储能、能源交易的工程技术人员。; 使用场景及目标:①为储能运营商提供参与复合电力市场的科学决策工具;②为研究电力市场机制下多主体博弈与优化策略提供理论模型和仿真案例;③服务于高校相关课程的案例教学与科研项目开发。; 阅读建议:此资源以Matlab代码实现为核心,读者在学习时应重点研读模型构建的数学原理与代码实现逻辑,结合算例数据动手调试运行,深入理解双层优化的迭代求解过程和参数设置对结果的影响,以达到理论与实践的融会贯通。
PC电脑电视TV投屏软件
主要功能:1、局域网内电脑桌面投屏到电视上,延迟已尽量降低,这个功能需要分别有电脑端和电视端,2、电脑推送视频到电视,这个功能无需安装电视端APK 附加功能:可以将APK从电脑推送到电视上安装,但必须要打开电视端APP 无需联网,不上传数据,只要电脑和电视在同一个局域网就可以,即连得是同一个wifi或者路由器。 PS:软件会报警
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章