再学 GDI+[101]: TGPImage(21) - 获取所有编码器的详细信息
2008-07-10 15:26
344 查看
本例运行结果:
代码文件:
窗体文件:
Clsid: {557CF400-1A04-11D3-9A73-0000F81EF32E} FormatID: {B96B3CAB-0728-11D3-9D7B-0000F81EF32E} CodecName: Built-in BMP Codec DllName: FormatDescription: BMP FilenameExtension: *.BMP;*.DIB;*.RLE MimeType: image/bmp Flags: 65543 Version: 1 SigCount: 1 SigSize: 2 Clsid: {557CF401-1A04-11D3-9A73-0000F81EF32E} FormatID: {B96B3CAE-0728-11D3-9D7B-0000F81EF32E} CodecName: Built-in JPEG Codec DllName: FormatDescription: JPEG FilenameExtension: *.JPG;*.JPEG;*.JPE;*.JFIF MimeType: image/jpeg Flags: 65543 Version: 1 SigCount: 1 SigSize: 2 Clsid: {557CF402-1A04-11D3-9A73-0000F81EF32E} FormatID: {B96B3CB0-0728-11D3-9D7B-0000F81EF32E} CodecName: Built-in GIF Codec DllName: FormatDescription: GIF FilenameExtension: *.GIF MimeType: image/gif Flags: 65543 Version: 1 SigCount: 2 SigSize: 6 Clsid: {557CF405-1A04-11D3-9A73-0000F81EF32E} FormatID: {B96B3CB1-0728-11D3-9D7B-0000F81EF32E} CodecName: Built-in TIFF Codec DllName: FormatDescription: TIFF FilenameExtension: *.TIF;*.TIFF MimeType: image/tiff Flags: 65543 Version: 1 SigCount: 2 SigSize: 2 Clsid: {557CF406-1A04-11D3-9A73-0000F81EF32E} FormatID: {B96B3CAF-0728-11D3-9D7B-0000F81EF32E} CodecName: Built-in PNG Codec DllName: FormatDescription: PNG FilenameExtension: *.PNG MimeType: image/png Flags: 65543 Version: 1 SigCount: 1 SigSize: 8
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses GDIPOBJ, GDIPAPI; procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Align := alLeft; Memo1.ScrollBars := ssBoth; end; procedure TForm1.Button1Click(Sender: TObject); var num, size: Cardinal; ImageCodecInfo: PImageCodecInfo; i: Integer; type ArrImgCodInfo = array of TImageCodecInfo; begin GetImageEncodersSize(num, size); GetMem(ImageCodecInfo, size); GetImageEncoders(num, size, ImageCodecInfo); Memo1.Clear; for i := 0 to num - 1 do with Memo1.Lines do begin Add(format('Clsid: %s',[GUIDToString(ArrImgCodInfo(ImageCodecInfo)[i].Clsid)])); Add(format('FormatID: %s',[GUIDToString(ArrImgCodInfo(ImageCodecInfo)[i].FormatID)])); Add(format('CodecName: %s',[ArrImgCodInfo(ImageCodecInfo)[i].CodecName])); Add(format('DllName: %s',[ArrImgCodInfo(ImageCodecInfo)[i].DllName])); Add(format('FormatDescription: %s',[ArrImgCodInfo(ImageCodecInfo)[i].FormatDescription])); Add(format('FilenameExtension: %s',[ArrImgCodInfo(ImageCodecInfo)[i].FilenameExtension])); Add(format('MimeType: %s',[ArrImgCodInfo(ImageCodecInfo)[i].MimeType])); Add(format('Flags: %d',[ArrImgCodInfo(ImageCodecInfo)[i].Flags])); Add(format('Version: %d',[ArrImgCodInfo(ImageCodecInfo)[i].Version])); Add(format('SigCount: %d',[ArrImgCodInfo(ImageCodecInfo)[i].SigCount])); Add(format('SigSize: %d',[ArrImgCodInfo(ImageCodecInfo)[i].SigSize])); Add(''); end; FreeMem(ImageCodecInfo); end; end.
窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 206 ClientWidth = 445 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Memo1: TMemo Left = 8 Top = 8 Width = 337 Height = 145 Lines.Strings = ( 'Memo1') TabOrder = 0 end object Button1: TButton Left = 351 Top = 32 Width = 75 Height = 25 Caption = 'Button1' TabOrder = 1 OnClick = Button1Click end end
Clsid //获取或设置 Guid 结构,其中包含能识别特定编码解码器的 GUID。 FormatID //获取或设置 Guid 结构,其中包含用于识别编码解码器格式的 GUID。 CodecName //获取或设置包含编码解码器名称的字符串。 DllName //获取或设置包含存放编码解码器的 DLL 的路径名字符串。如果编码解码器不在 DLL 中,则该指针为空。 FormatDescription //获取或设置描述编码解码器的文件格式的字符串。 FilenameExtension //获取或设置包含编码解码器中使用的文件扩展名的字符串。这些扩展名用分号分隔。 MimeType //获取或设置包含编码解码器的多用途网际邮件扩充协议 (MIME) 类型的字符串。 Flags //获取或设置用于存储有关编码解码器的其他信息的 32 位值。该属性从 ImageCodecFlags 枚举返回若干标志的组合。 Version //获取或设置编码解码器的版本号。 SigMask //获取或设置可用作筛选器的二维字节数组。 SigPattern //获取或设置表示编码解码器签名的二维字节数组。
相关文章推荐
- 再学 GDI+[102]: TGPImage(22) - 获取所有解码器的详细信息
- 再学 GDI+[90]: TGPImage(10) - 获取图像的调色板信息
- 再学 GDI+[97]: TGPImage(17) - 获取 GDI+ 所支持的可编码、可解码的图像格式
- Android获取所有安装APP信息的详细代码
- Linux获取所有网口及其详细信息
- 使用 WPF 获取你电脑上所有目录的详细信息:
- Sql :获取数据库所有表及其字段名称、类型、长度 (也可以指定单张或若干张表的详细信息。。。)
- 再学 GDI+[98]: TGPImage(18) - 获取 GDI+ 图像格式对应的 GUID
- C#获取IIS所有站点及虚拟目录和应用程序(包含名称及详细信息)
- 获取所有安装的apk详细信息及常规操作
- C#获取IIS所有站点及虚拟目录和应用程序(包含名称及详细信息)
- 关于获取Android系统所有已安装App信息的一些操作(详细)
- 在C#中如何获取系统中所安装的所有软件信息,还有如何打开系统中某个程序
- GDI+中的一些方法如Image::GetWidth 时常返回信息错误的问题
- 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
- MSSqlServer中用命令查询所有数据库、表、表中列的详细信息
- 获取本机所有网卡的网卡名、网卡描述、网卡MAC地址、网卡IP、网卡类型等信息及网线是否插入状态
- 通过VBS访问WMI,获取当前所有进程信息
- ios获取系统信息的详细api
- 使用 traceback 获取详细的异常信息