在.png保存期间访问违规

时间:2017-04-05 12:14:00

标签: delphi delphi-xe7

当我尝试在TPNGImage对象上调用SaveToFile方法时,我得到了Acces Violation Error。

巴布亚新几内亚建筑: pngTest:=TPngImage.CreateBlank(COLOR_GRAYSCALE, 16, 2048, 2048);

方法调用:pngTest.SaveToFile('testtttt.png');

PNG对象是正确创建的,因为我可以将它分配给TImage并且它可以正常工作。

1 个答案:

答案 0 :(得分:3)

这是Delphi PNG库代码中的一个缺陷。请向Embarcadero报告。

缺陷似乎是由使用16位颜色深度触发的。如果您将代码切换为使用8位颜色,则代码会成功运行。

没有简单的解决方法,因此如果您希望继续使用16位颜色,则需要找到不同的PNG库。我希望微软的Windows Imaging Component库能够正常运行。或者您可以考虑使用GR32PNG扩展名的Graphics32。