//IPicture * pPicture = NULL;已载入图片
CComPtr<IStream> pfilestram;
CreateStreamOnHGlobal(NULL,TRUE,&pfilestram);
LONG size;
hr=pPicture->SaveAsFile(pStream,TRUE,&size);
char pathbuf[1024];
CFile iconfile;
iconfile.Open(TEXT("c://bb.bmp"), 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);
}
//*****************************
使用IPicture的Render方法可以将图片Stretch显示,问题是怎么样再将Stretch后的图像保存起来呢?
如何使用IPicture接口将图片放大后保存相关解决方法:1、
请关注
2、
重点关注
3、
gzb
4、
如何使用IPicture接口将图片放大后保存推荐解答:
保存放大后的尺寸就可以,本人用过,100%可行。
5、
CSize cs;
cs.x=pictureRect.Width();
cs.y=pictureRect.Height();
然后保存cs
读取的时候再。。。下面你应该知道了把。保存用结构化存储。
6、
HBITMAP hbmRet=NULL;
OLE_HANDLE hPic = NULL;
int newwidht;
int newheight;
if (SUCCEEDED(piPic->get_Handle(&hPic)) && hPic)
{
hbmRet = (HBITMAP)CopyImage((HANDLE)hPic,
IMAGE_BITMAP, newwidht, newheight, LR_CREATEDIBSECTION);
}
if(hbmRet!=NULL)
{
PICTDESC pictd;
pictd.cbSizeOfStruct=sizeof(PICTDESC);
pictd.picType=PICTYPE_BITMAP;
pictd.bmp.hbitmap=hbmRet;
//create a new IPicture
OleCreatePictureIndirect(...);
//call IPicture->SaveAsFile(...)
}
7、
CSize cs;
cs.x=pictureRect.Width();
cs.y=pictureRect.Height();
8、
谢谢harry202(harry),已给分。
//*******************************************