.png 保存期间访问冲突

Acces Violation during .png saving

当我尝试调用 TPNGImage 对象上的 SaveToFile 方法时,出现访问冲突错误。

PNG 结构: pngTest:=TPngImage.CreateBlank(COLOR_GRAYSCALE, 16, 2048, 2048);

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

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

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

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

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