如何从包含多个图像的图标中提取特定大小的图像或所有图像?
发布于 2010-09-29 09:39:46
你没有说这是什么目的,有许多方法可以获得图标,其中一种方法可能比另一种方法更好,这取决于目的。
但是,要从任意文件中提取任意数量的“大”(32x32)和/或“小”(16x16)图标*,请使用ExtractIconEx函数。这使您可以从图标文件(.ico)、可执行文件或动态链接库中提取这两个标准大小之一的一个或多个图标。一个图标文件可以包含多个图像,这个函数可以让你得到所有的图像。
该函数将写入一个句柄数组,您可以将每个句柄分配给TIcon实例的Handle属性。然后,如果您以任何其他方式加载TIcon methods,则可以像往常一样使用TIcon。请注意,Delphi XE的新特性是能够轻松地将其复制到位图via the Assign method。That article还展示了如何访问所有的库存(内置/标准) Windows图标,如果这恰好是你想要的。
(附注:我认为TIcon类允许您通过其LoadFromFile方法从文件中加载-文档中似乎缺少这一点,但我非常确定它确实存在。从内存中,它只加载一个图标。)
(*)实际上,"large“和"small”可以与32x32和16x16不同:使用带有
SM_CXICON、SM_CYICON、SM_CXSMICON和SM_CYSMICON标志的GetSystemMetrics函数来找出每种类型的尺寸。
https://stackoverflow.com/questions/3813845
复制相似问题