多幅图片进行像素平均叠加生成一副图片

ccdzhzhyon 2008-08-30 02:17:18
请问如何将多幅BMP图像调入内存,并获得每副图片的指针? 谢谢
...全文
329 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizhigang34 2008-08-31
  • 打赏
  • 举报
回复

//功能: 读位图文件,得到位图句柄
//参数: hdc设备描述表句柄; szFileName位图文件路径
//返回: 成功返回HBITMAP位图句柄, 失败返回NULL
HBITMAP CMyBitmap::OpenBmpFile(HDC hdc, LPSTR szFileName)
{
BITMAPFILEHEADER * pbmfh ;
BOOL bSuccess ;
DWORD dwFileSize, dwHighSize, dwBytesRead ;
HANDLE hFile ;
HBITMAP hBitmap ;
// Open the file: read access, prohibit write access
hFile = CreateFile (szFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL) ;
if (hFile == INVALID_HANDLE_VALUE)
return NULL ;
// Read in the whole file
dwFileSize = GetFileSize (hFile, &dwHighSize) ;
if (dwHighSize)
{
CloseHandle (hFile) ;
return NULL ;
}
pbmfh = (BITMAPFILEHEADER *)malloc (dwFileSize) ;
if (!pbmfh)
{
CloseHandle (hFile) ;
return NULL ;
}
bSuccess = ReadFile (hFile, pbmfh, dwFileSize, &dwBytesRead, NULL) ;
CloseHandle (hFile) ;
// Verify the file
if (!bSuccess || (dwBytesRead != dwFileSize) || (pbmfh->bfType != * (WORD *) "BM")
|| (pbmfh->bfSize != dwFileSize))

{
free (pbmfh) ;
return NULL ;
}
// Create the DDB
hBitmap = CreateDIBitmap(hdc,
(BITMAPINFOHEADER *) (pbmfh + 1),
CBM_INIT,
(BYTE *) pbmfh + pbmfh->bfOffBits,
(BITMAPINFO *) (pbmfh + 1),
DIB_RGB_COLORS) ;
free (pbmfh) ;
return hBitmap ;
}

可微函树 2008-08-30
  • 打赏
  • 举报
回复
读文件
ztwztq864791 2008-08-30
  • 打赏
  • 举报
回复
RT
[Quote=引用 2 楼 cnzdgs 的回复:]
这种处理直接读文件就行了。
[/Quote]
cnzdgs 2008-08-30
  • 打赏
  • 举报
回复
这种处理直接读文件就行了。
oo_v_oo 2008-08-30
  • 打赏
  • 举报
回复
LoadImage

19,469

社区成员

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

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