和在 Net 中不同的是, 在具體指定映像格式時, 這裡常常需要的不是格式名稱, 而是格式的 GUID;
知道了格式名稱, 用 GetEncoderClsid 函數可以擷取格式的 GUID;
GetEncoderClsid 函數來自 GDIPUTIL 單元, 本例並沒有用到前面一直不可或缺的 GDIPOBJ、GDIPAPI 單元.
如果要擷取 image/bmp、image/jpeg、image/gif、image/tiff、image/png 格式以外的 GUID 不能使用此函數.
另外, 為了把 GUID 轉換為字串顯示, 本例用到了 GUIDToString 函數.
本例:
代碼檔案:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}uses GDIPUTIL;procedure TForm1.FormCreate(Sender: TObject);var List: TStringList; ImgGUID: TGUID; i: Integer;begin List := TStringList.Create; List.Add('image/bmp'); List.Add('image/jpeg'); List.Add('image/gif'); List.Add('image/tiff'); List.Add('image/png'); Memo1.Clear; for i := 0 to List.Count - 1 do begin GetEncoderClsid(List[i], ImgGUID); Memo1.Lines.Add(Format('%s: %s', [GUIDToString(ImgGUID), List[i]])); end; List.Free;end;end.
表單檔案:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 115 ClientWidth = 329 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 = 0 Top = 0 Width = 321 Height = 115 Align = alLeft Lines.Strings = ( 'Memo1') ScrollBars = ssBoth TabOrder = 0 ExplicitHeight = 128 endend