如何从图标中提取特定大小的图像?

时间:2010-09-28 14:32:44

标签: delphi delphi-2010

如何从包含多个图像的图标中提取特定尺寸的图像或所有图像?

1 个答案:

答案 0 :(得分:11)

你没有说明这是什么目的,并且有很多方法可以获得图标,根据目的,一种方法可能比另一种方法更好。

但是,从任意文件中提取任意数量的“大”(32x32)和/或“小”(16x16)图标* ,请使用ExtractIconEx功能。这使您可以从图标文件(.ico),EXE或DLL中提取这两种标准大小中的任何一种的一个或多个图标。图标文件可以包含多个图像,此功能可以让您获得所有图像。

该函数将写入句柄数组,每个句柄都可以分配给Handle实例的TIcon属性。然后,如果您以任何其他方式加载TIcon,则可以像往常一样使用TIcon methods。请注意,Delphi XE的新功能是可以轻松地将其复制到位图via the Assign methodThat article还展示了如何访问所有库存(内置/标准)Windows图标,如果这恰好是您所追求的。

(旁注:我认为TIcon类允许您通过其LoadFromFile方法从文件加载 - 这似乎在文档中缺失,但我很确定它存在。内存,只加载一个图标。)

  

(*)实际上,“大”和“小”都可以   与32x32和16x16不同:使用   该   GetSystemMetrics   函数SM_CXICON,   SM_CYICONSM_CXSMICON和。{   找到SM_CYSMICON标志   每种类型的尺寸。