将多幅图片保存到多帧文件(.tif)中

 
bool GetImageCLSID(const WCHAR* format, CLSID* pCLSID)
{
 UINT num = 0;

UINT size = 0;

ImageCodecInfo* pImageCodecInfo = NULL;

GetImageEncodersSize(&num, &size);

if(size == 0)

return FALSE; // 编码信息不可用

//分配内存

pImageCodecInfo = (ImageCodecInfo*)(malloc(size));

if(pImageCodecInfo == NULL)

return FALSE; // 分配失败

//获得系统中可用的编码方式的所有信息

GetImageEncoders(num, size, pImageCodecInfo);

//在可用编码信息中查找format格式是否被支持

for(UINT i = 0; i < num; ++i)

{ //MimeType:编码方式的具体描述

if(wcscmp(pImageCodecInfo[i].MimeType, format) == 0 )

{

*pCLSID = pImageCodecInfo[i].Clsid;

free(pImageCodecInfo);

return TRUE;

}

}

free(pImageCodecInfo);

return FALSE;
// return 0;
}

void C实验对话框2Dlg::OnBnClickedButadd()
{
 // TODO: 在此添加控件通知处理程序代码
 EncoderParameters encodeparameters;
 ULONG parametervalue;
 Status stat;
 encodeparameters.Count=1;
 encodeparameters.Parameter[0].Guid=EncoderSaveFlag;
 encodeparameters.Parameter[0].Type=EncoderParameterValueTypeLong;
 encodeparameters.Parameter[0].NumberOfValues=1;
 encodeparameters.Parameter[0].Value=&parametervalue;

 CLSID encoderClsid;
    GetImageCLSID(L"image/tiff",&encoderClsid);
 Image* image1=::new Image(L"1.jpg");
 Image* image2=::new Image(L"2.jpg");
    parametervalue=EncoderValueMultiFrame;//多帧编码
 stat=image1->Save(L"3.tif",&encoderClsid,&encodeparameters);
 if(stat!=Ok)
  MessageBox("error");
 parametervalue=EncoderValueFrameDimensionPage;//此为TIF文件;为gif文件时用EncoderValueFrameDimensionTime
 stat=image1->SaveAdd(image2,&encodeparameters);
 if(stat!=Ok)
  MessageBox("error2");
 
 
 parametervalue=EncoderValueFlush;
 stat=image1->SaveAdd(&encodeparameters);
 if(stat!=Ok)
  MessageBox("error3");
 
 image2->~Image();
 image1->~Image();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值