程序当中得到了一个bitmap的句柄(HBITMAP),
现在想把他输出成一个文件,以方便用photoshop只类的东西编辑,
怎么完成这个操作,高手指点 谢谢
现在想把他输出成一个文件,以方便用photoshop只类的东西编辑,
怎么完成这个操作,高手指点 谢谢
解决方案 »
- 数据库里的一列作为teechart的x轴,怎么让各数值对应已有的x坐标
- 七八万行代码怎么看?
- 问一个命名管道双向读写的问题。
- 50分急问视图画点的问题(急急急)
- 关于DShow自带例子的问题!
- AutoCad .dwg文件格式
- 请问如何获得本地机用户名?
- ●●●●请大家关注CSocketFile
- 用网上的方法 在VC 6.0中不用MFC,添加WEBBROWSER,为什么不成功?
- How to read the image file such as Tiff?
- CArray<CPassenger,CPassenger&> m_passengers; 这条语句错在了哪里?
- 如何获取win98系统主机名--在线等答案!
void SaveBmp(HBITMAP hbmp, LPCTSTR sIconFileName)
{
if(hbmp==NULL || sIconFileName==NULL)
return;
//warning: this code snippet is not bullet proof.
//do error check by yourself [masterz]
PICTDESC picdesc;
picdesc.cbSizeofstruct = sizeof(PICTDESC);
picdesc.picType = PICTYPE_BITMAP ;
picdesc.bmp.hpal = NULL;
picdesc.bmp.hbitmap = hbmp;
IPicture* pPicture=NULL;
OleCreatePictureIndirect(&picdesc, IID_IPicture, TRUE,(VOID**)&pPicture);
LPSTREAM pStream;
CreateStreamOnHGlobal(NULL,TRUE,&pStream);
LONG size;
HRESULT hr=pPicture->SaveAsFile(pStream,TRUE,&size);
char pathbuf[1024];
strcpy(pathbuf,sIconFileName);
CFile iconfile;
iconfile.Open(pathbuf, CFile::modeCreate|CFile::modeWrite);
LARGE_INTEGER li;
li.HighPart =0;
li.LowPart =0;
ULARGE_INTEGER ulnewpos;
pStream->Seek( li,STREAM_SEEK_SET,&ulnewpos);
ULONG uReadCount = 1;
while(uReadCount>0)
{ pStream->Read(pathbuf,sizeof(pathbuf),&uReadCount);
if(uReadCount>0)
iconfile.Write(pathbuf,uReadCount);
}
pStream->Release();
iconfile.Close();
}