再学 GDI+[98]: TGPImage(18) - 获取 GDI+ 图像格式对应的 GUID

和在 Net 中不同的是, 在具体指定图像格式时, 这里常常需要的不是格式名称, 而是格式的 GUID;

知道了格式名称, 用 GetEncoderClsid 函数可以获取格式的 GUID;

GetEncoderClsid 函数来自 GDIPUTIL 单元, 本例并没有用到前面一直不可或缺的 GDIPOBJ、GDIPAPI 单元.

如果要获取 image/bmp、image/jpeg、image/gif、image/tiff、image/png 格式以外的 GUID 不能使用此函数.

另外, 为了把 GUID 转换为字符串显示, 本例用到了 GUIDToString 函数.

本例效果图:

o_8772.png

代码文件:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Memo1: TMemo;procedure FormCreate(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}uses GDIPUTIL;procedure TForm1.FormCreate(Sender: TObject);
varList: TStringList;ImgGUID: TGUID;i: Integer;
beginList := 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 dobeginGetEncoderClsid(List[i], ImgGUID);Memo1.Lines.Add(Format('%s: %s', [GUIDToString(ImgGUID), List[i]]));end;List.Free;
end;end.
窗体文件:
object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 115ClientWidth = 329Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalseOnCreate = FormCreatePixelsPerInch = 96TextHeight = 13object Memo1: TMemoLeft = 0Top = 0Width = 321Height = 115Align = alLeftLines.Strings = ('Memo1')ScrollBars = ssBothTabOrder = 0ExplicitHeight = 128end
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS之连接数组方法concat

作用:用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本 语法:arrayObject.concat(arrayX,arrayX,……,arrayX) 参数:arrayX,必需。该参数可以是具体的值,也…

微信小程序:生命周期

下面从三个方面来介绍小程序的生命周期: (1)应用生命周期 (2)页面生命周期 (3)应用及页面生命周期的触发顺序 1.应用生命周期 App() 必须在 app.js 中调用,必须调用且只能调用一次…

在.NET3.5平台上使用LinQ to SQL + NBear 创建三层WEB应用

看了《一步一步学Linq to sql》和《在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统》 这两个系列文章后,因为一直使用NBear,所以试着综合了一下主要用NBear.IOC其它的NBear.data里的就没有会了,相应的使用LINQ来做数据处理. 之前一直使用NBear做些WEB应用主要感觉N…

JS之字符串连接方法join

作用:join() 方法用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔的。(作用和split正好相反) 语法:arrayObject.join(separator) 参数:可选。指定要使用的分隔符。如果省略该参数&…

JS之颠倒数组元素的reverse方法

作用:reverse() 方法用于颠倒数组中元素的顺序 语法:arrayObject.reverse() 注意:该方法会改变原来的数组,而不会创建新的数组 实例1:

图文:详解数据库Oracle 11g的基本安装

From: http://blog.csdn.net/wjcreator123/article/details/3243041 下面提供的是Oracle 11g的下载地址和基本安装过程(仅作参考) 第一步: oracle服务端下载: http://down.zdnet.com.cn/detail/9/82225.shtml 客户端: http://blog.csdn.net…

mysql数据库中查看当前使用的数据库是哪个数据库?

一、用select database()语句 语句 mysql > select database();结果 解释:表示的是当前使用的是哪个数据库或者说会话登录到了哪个数据库中。 二、用show tables语句 语句 mysql > show tables;结果 解释:查询出来的结果中,第一行…

JS之返回数组指定元素的slice

作用:slice() 方法可从已有的数组中返回选定的元素 语法:arrayObject.slice(start,end) 参数1:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,…

使用 ADO.NET 的 NextResult 方法取得多个 Result Set

(本帖在版工的旧 Blog 中,发表日期为 2007/04/06) (本帖有些 Hyperlink 是连到台湾的网站,若无法连结,麻烦请留言反应)从 ADO.NET 1.x 开始,DataReader 就可以在单一次的查询动作中,「批次 (batch)」读取 T-SQL 语句以…

JS之数组删除/添加项目方法splice

用法:splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目 注:1:该方法会改变原始数组 语法:arrayObject.splice(index,howmany,item1,…..,itemX) 参数1:必需。整数,规定添加/删除项目的位置&…

Struts+DAO框架搭建完成!(源码)

今天做了这个StrutsDAO框架,可以说是又向SSH迈了一步。 做的过程中又发现了一些问题,但是在我和其他人的努力下一起解决了。这个问题是MyEclipse的Tomcat的启动问题。(已经解决并发帖解答了) 好了,下面切入正题&…

解析可变参数函数的实现原理(printf,scanf)

From: http://hi.baidu.com/huifeng00/blog/item/085e8bd198f46ed3a8ec9a0b.html 学习C的语言的时候,肯定接触到标准输出和标准输入函数。 这个函数给人的感觉很强大,因为它很另类,就是这个函数的参数是可变的。 下面是一个自己编写的可变…

花生葫芦球 健身新运动

国民健康天后张淳淳老师率先再将风靡欧美的“花生葫芦球(FITNESS BALL)”,推广给日、港、台的朋友,同时结合国内外体适能教练与专家,研发出一套减压、塑身运动课程,引领全民健康塑身运动。 花生葫芦球 健身新运动美大腿后健肌群伸…

JS之数组元素排序方法sort

作用:sort() 方法用于对数组的元素进行排序 语法:arrayObject.sort(sortby) 参数:可选。规定排序顺序。必须是函数 返回值:对数组的引用。请注意,数组在原数组上进行排序,不生成副本 注意1:…