转:GetCodecClsid--提供多种转换功能的GDIPLUS

原创 2002年02月04日 08:41:00

The GDI+

--------------------------------------------------------------------------------
This article was contributed by Leandro Gustavo Biss Becker - CEFET-PR.
Environment: [VC6 SP4, NT4 SP3, W2k, Win 9x]

I have found that the Microsft GDI+ can do many cool things for you. Previously you had to find code or write your own code to do the same things. One of these things is the ability to load or save the following types of images:

BMP
DIB
RLE
GIF
JPEG
EMF
TIFF
PNG
These can be loaded with just a few lines of code like this:

#include <Gdiplus.h>
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")

Image Im(L"c://fig.jpg", FALSE);
CLSID GifCodec;
GetCodecClsid(L"image/gif", &GifCodec);
Im.Save(L"c://fig.gif", &GifCodec, NULL);
Here is the code to GetCodecClsid

int GetCodecClsid(const WCHAR* format, CLSID* pClsid)
{
  UINT num = 0;  // number of image encoders
  UINT size = 0; // size of the image encoder array in bytes

  ImageCodecInfo* pImageCodecInfo = NULL;

  GetImageEncodersSize(&num, &size);
  if(size == 0)
    return -1; // Failure

  pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
  if(pImageCodecInfo == NULL)
    return -1; // Failure
   
  GetImageEncoders(num, size, pImageCodecInfo);

  for(UINT j = 0; j < num; ++j)
  {
     if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
     {
       *pClsid = pImageCodecInfo[j].Clsid;
       return j; // Success
     }
  } // for

  return -1; // Failure
} // GetCodecClsid

vs2008中GDI+的使用

GDI+,初学
  • x313695373
  • x313695373
  • 2010年11月05日 16:45
  • 3492

word转pdf转换器的多种转换功能

目前新的word转换成pdf转换器,也就是迅捷pdf转换器。它是2015年新一期的宠儿,你可以在这个转换器上看到格式各样的转换格式,常见的文件转Word、文件转Excel、文件转PPT、文件转HTML...
  • renovg
  • renovg
  • 2015年08月04日 11:07
  • 337

word转pdf转换器的多种转换功能

目前新的word转换成pdf转换器,也就是迅捷pdf转换器。它是2015年新一期的宠儿,你可以在这个转换器上看到格式各样的转换格式,常见的文件转Word、文件转Excel、文件转PPT、文件转HTML...
  • renovg
  • renovg
  • 2015年08月04日 11:04
  • 240

C语言三种预处理功能

1. 宏定义 2. 文件包含 3. 条件编译 伪指令(或预处理指令)定义: 预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存...
  • u012050154
  • u012050154
  • 2016年06月15日 15:37
  • 6519

libvirt 详解(1)

1.1 libvirt 1.1.1 libvirt简介 提到KVM的管理工具,首先不得不介绍的就是大名鼎鼎的libvirt,因为libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和应用...
  • chenyulancn
  • chenyulancn
  • 2013年05月12日 10:35
  • 2221

webp图像批量转换软件推荐——XnConv…

V1.55简体中文[免费+32/64位]" TITLE="webp图像批量转换软件推荐——XnConvert V1.55简体中文[免费+32/64位]" /> XnConvert是一款简单易用...
  • u010274993
  • u010274993
  • 2014年01月21日 15:52
  • 1911

Gdiplus学习2——画笔与画刷

1、画笔的使用        画笔用于描绘图形的轮廓,Gdi+画笔除了常见的色彩和宽度属性外,还添加了其他属性,如对其方式、线帽和变换方式等。        Gdi+使用Pen(画笔)类来定义一个画笔...
  • xiaoxiaoyusheng2012
  • xiaoxiaoyusheng2012
  • 2014年03月16日 23:35
  • 3303

Gdiplus的坑:通过DrawImage进行放大不是很靠谱

由于DrawImage指定destRect和srcRect绘制后,
  • tianmuxia
  • tianmuxia
  • 2014年08月15日 22:57
  • 3804

GdiplusFlat(7)双缓冲绘图和DC透明复制

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处: 在上几篇中,我们说到了通过GdipCreateFromHDC函数将HDC(设备上下文句柄...
  • zuishikonghuan
  • zuishikonghuan
  • 2015年08月07日 10:07
  • 2778

IP地址与域名之间的转换(Linux + GCC)

1.利用域名获取IP地址 使用以下函数可以通过传递字符串格式的域名获取IP地址。 #include struct hostent * gethostbyname(const char * hostn...
  • qq_16542775
  • qq_16542775
  • 2016年05月07日 15:29
  • 1127
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:转:GetCodecClsid--提供多种转换功能的GDIPLUS
举报原因:
原因补充:

(最多只允许输入30个字)