如何在Delphi中旋转PNG图像?

3

如何在保留透明度的情况下在Delphi中旋转png图像?我使用TPNGObject加载了它。然后我使用Canvas.StretchDraw(MyRect, the TPNGObject),但我不知道如何旋转它。


3
我从未用过它进行旋转,但如果你在这里没有得到更好的答案,你可以尝试在www.graphics32.org上使用免费软件。 - undefined
2
我怀疑在VCL中这将会很慢且困难,但在graphics32 + VCL中会慢而容易,而在XE2的Firemonkey(FMX)中则会快速且容易。 - undefined
1
点击这个答案中的链接将会跳转到示例代码。 - undefined
1个回答

4
问题在于,如果您使用Canvas进行旋转,您将失去透明度,正如您在TPNGObject中所指出的那样。
这是因为Canvas不支持PNG图像所需的透明度级别。
相反,您必须使用专门的代码来旋转PNG图像。以下是一个链接到支持TPNGObject的代码库,包括旋转函数的示例: http://cc.embarcadero.com/Item/25631

非常感谢你,Marcus。不过你有没有任何办法可以加快这段代码的执行速度?因为他在宽度和高度上使用了一个for循环。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接