如何从包含多个图像的图标中提取特定尺寸的图像或所有图像?
答案 0 :(得分:11)
你没有说明这是什么目的,并且有很多方法可以获得图标,根据目的,一种方法可能比另一种方法更好。
但是,从任意文件中提取任意数量的“大”(32x32)和/或“小”(16x16)图标* ,请使用ExtractIconEx
功能。这使您可以从图标文件(.ico),EXE或DLL中提取这两种标准大小中的任何一种的一个或多个图标。图标文件可以包含多个图像,此功能可以让您获得所有图像。
该函数将写入句柄数组,每个句柄都可以分配给Handle
实例的TIcon
属性。然后,如果您以任何其他方式加载TIcon,则可以像往常一样使用TIcon
methods。请注意,Delphi XE的新功能是可以轻松地将其复制到位图via the Assign method。 That article还展示了如何访问所有库存(内置/标准)Windows图标,如果这恰好是您所追求的。
(旁注:我认为TIcon
类允许您通过其LoadFromFile
方法从文件加载 - 这似乎在文档中缺失,但我很确定它存在。内存,只加载一个图标。)
(*)实际上,“大”和“小”都可以 与32x32和16x16不同:使用 该
GetSystemMetrics
函数SM_CXICON
,SM_CYICON
,SM_CXSMICON
和。{ 找到SM_CYSMICON
标志 每种类型的尺寸。