目前共有3篇帖子。 内容转换:不转换▼
 
点击 回复
472 2
【资料】GDI+中的图像格式编解码器列表
一派护法 十九级
1楼 发表于:2016-8-14 14:08

[Built-in BMP Codec]
MimeType: image/bmp
FormatDescription: BMP
FilenameExtension: *.BMP;*.DIB;*.RLE
Version: 1

[Built-in JPEG Codec]
MimeType: image/jpeg
FormatDescription: JPEG
FilenameExtension: *.JPG;*.JPEG;*.JPE;*.JFIF
Version: 1

[Built-in GIF Codec]
MimeType: image/gif
FormatDescription: GIF
FilenameExtension: *.GIF
Version: 1

[Built-in TIFF Codec]
MimeType: image/tiff
FormatDescription: TIFF
FilenameExtension: *.TIF;*.TIFF
Version: 1


[Built-in PNG Codec]
MimeType: image/png
FormatDescription: PNG
FilenameExtension: *.PNG
Version: 1

一派护法 十九级
2楼 发表于:2016-8-14 14:10

【可以使用下面的程序获得本机的GDI+编解码器列表】

#include <iostream>
#include <Windows.h>
#include <GdiPlus.h>
#pragma comment(lib, "Gdiplus.lib")
using namespace std;
using namespace Gdiplus;
void show(void)
{
    UINT uNum, uSize;
    GetImageEncodersSize(&uNum, &uSize);
    cout << "个数: " << uNum << endl;
    cout << "大小: " << uSize << endl;
    if (uSize == 0)
        return; // malloc(0)也能分配成功, 但无意义

    ImageCodecInfo *pInfo = (ImageCodecInfo *)malloc(uSize);
    if (pInfo == NULL)
    {
        cout << "内存分配失败" << endl;
        return;
    }
    GetImageEncoders(uNum, uSize, pInfo);

    UINT i;
    for (i = 0; i < uNum; i++)
    {
        wcout << '[' << pInfo[i].CodecName << ']' << endl;
        wcout << "MimeType: " << pInfo[i].MimeType << endl;
        if (pInfo[i].DllName != NULL)
            wcout << "DllName: " << pInfo[i].DllName << endl;
        wcout << "FormatDescription: " << pInfo[i].FormatDescription << endl;
        wcout << "FilenameExtension: " << pInfo[i].FilenameExtension << endl;
        wcout << "Version: " << pInfo[i].Version << endl;
        wcout << endl;
    }
    free(pInfo);
}
int main(void)
{
    GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR gdiplusToken;
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

    show();


    GdiplusShutdown(gdiplusToken);
    system("pause");
    return 0;
}

一派护法 十九级
3楼 发表于:2016-8-14 14:14
其中,ImageCodecInfo类中的Clsid属性可用来作为保存图像文件时的类型标识。

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:472 回复数:2
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2016-8-14 14:14
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。