【发布时间】:2012-12-03 23:27:00
【问题描述】:
我一直在尝试在 Delphi 中更改 wmf 画布上的颜色,使用通常的图像我只是运行扫描线或在每个 X 和 Y 像素上运行一个循环并给它一个新的颜色代码,但是使用 MetaCanvas 这个方法不工作,也许是因为它实际上不是一个图像,而是一个 GDI 函数列表。我在某处读到我需要反编译和重新编译元文件以更改其中的颜色属性。但我不知道我将如何做,或者是否有其他简单的方法。
如果有人能指出我正确的方向。
谢谢
【问题讨论】:
我一直在尝试在 Delphi 中更改 wmf 画布上的颜色,使用通常的图像我只是运行扫描线或在每个 X 和 Y 像素上运行一个循环并给它一个新的颜色代码,但是使用 MetaCanvas 这个方法不工作,也许是因为它实际上不是一个图像,而是一个 GDI 函数列表。我在某处读到我需要反编译和重新编译元文件以更改其中的颜色属性。但我不知道我将如何做,或者是否有其他简单的方法。
如果有人能指出我正确的方向。
谢谢
【问题讨论】:
有一种机制可以让您修改元文件的内容。
调用EnumEnhMetaFile 传递一个回调函数EnhMetaFileProc。为图元文件中的每条记录调用回调函数。您可以复制此记录,对其进行修改,然后将其传递给PlayEnhMetaFileRecord。
因此,您可以查找指定颜色的记录,并进行所需的任何修改。
【讨论】: