GDI+图象处理

MSDN   Magazine 
C++Q&A 
Paul   DiLascia   
March       2002   Displaying   a   JPG   in   your   MFC   Application   
October   2001   Do   You   Have   a   License   for   that   GIF? 


Platform   SDK 
GDI+ 
Creating   and   Saving   a   Multiple-Frame   Image   
The   main   function   relies   on   the   helper   function   GetEncoderClsid,   which   is   shown   in   Retrieving   the   Class   Identifier   for   an   Encoder. 


Hide   Example 


#include   <windows.h> 
#include   <gdiplus.h> 
#include   <stdio.h> 
using   namespace   Gdiplus; 


INT   GetEncoderClsid(const   WCHAR*   format,   CLSID*   pClsid);     //   helper   function 


INT   main() 

      //   Initialize   GDI+. 
      GdiplusStartupInput   gdiplusStartupInput; 
      ULONG_PTR   gdiplusToken; 
      GdiplusStartup(&gdiplusToken,   &gdiplusStartupInput,   NULL); 


      EncoderParameters   encoderParameters; 
      ULONG                           parameterValue; 
      Status                         stat; 


      //   An   EncoderParameters   object   has   an   array   of 
      //   EncoderParameter   objects.   In   this   case,   there   is   only 
      //   one   EncoderParameter   object   in   the   array. 
      encoderParameters.Count   =   1; 


      //   Initialize   the   one   EncoderParameter   object. 
      encoderParameters.Parameter[0].Guid   =   EncoderSaveFlag; 
      encoderParameters.Parameter[0].Type   =   EncoderParameterValueTypeLong; 
      encoderParameters.Parameter[0].NumberOfValues   =   1; 
      encoderParameters.Parameter[0].Value   =   &parameterValue; 


      //   Get   the   CLSID   of   the   TIFF   encoder. 
      CLSID   encoderClsid; 
      GetEncoderClsid(L "image/tiff ",   &encoderClsid); 


      //   Create   four   image   objects. 
      Image*   multi   =   new   Image(L "Shapes.bmp "); 
      Image*   page2   =   new   Image(L "Cereal.gif "); 
      Image*   page3   =   new   Image(L "Iron.jpg "); 
      Image*   page4   =   new   Image(L "House.png "); 


      //   Save   the   first   page   (frame). 
      parameterValue   =   EncoderValueMultiFrame; 
      stat   =   multi-> Save(L "MultiFrame.tif ",   &encoderClsid,   &encoderParameters); 
      if(stat   ==   Ok) 
            printf( "Page   1   saved   successfully.\n "); 


      //   Save   the   second   page   (frame). 
      parameterValue   =   EncoderValueFrameDimensionPage; 
      stat   =   multi-> SaveAdd(page2,   &encoderParameters); 
      if(stat   ==   Ok) 
            printf( "Page   2   saved   successfully.\n "); 


      //   Save   the   third   page   (frame). 
      parameterValue   =   EncoderValueFrameDimensionPage; 
      stat   =   multi-> SaveAdd(page3,   &encoderParameters); 
      if(stat   ==   Ok) 
            printf( "Page   3   saved   successfully.\n "); 


      //   Save   the   fourth   page   (frame). 
      parameterValue   =   EncoderValueFrameDimensionPage; 
      stat   =   multi-> SaveAdd(page4,   &encoderParameters); 
      if(stat   ==   Ok) 
            printf( "Page   4   saved   successfully.\n "); 


      //   Close   the   multiframe   file. 
      parameterValue   =   EncoderValueFlush; 
      stat   =   multi-> SaveAdd(&encoderParameters); 
      if(stat   ==   Ok) 
            printf( "File   closed   successfully.\n "); 


      delete   multi; 
      delete   page2; 
      delete   page3; 
      delete   page4; 
      GdiplusShutdown(gdiplusToken); 
      return   0; 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值