IStream IPicture 保存图像

//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),已给分。

//*******************************************

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值