在保存 .png 文件时发生访问冲突错误

3
当我尝试在TPNGImage对象上调用SaveToFile方法时,会出现访问冲突错误。
PNG构造: pngTest:=TPngImage.CreateBlank(COLOR_GRAYSCALE, 16, 2048, 2048); 方法调用: pngTest.SaveToFile('testtttt.png'); PNG对象被正确创建,因为我可以将它分配给TImage并且它可以工作。
1个回答

3
这是Delphi PNG库代码中的缺陷。请向Embarcadero报告。
该缺陷似乎是由使用16位色深度触发的。如果将代码切换为使用8位色,则代码将成功运行。
没有简单的解决方法,因此,如果您希望继续使用16位色,请查找其他PNG库。我预计Microsoft的Windows图像组件库将正常运行。或者您可以考虑使用带有GR32PNG扩展的Graphics32库。

有没有“开箱即用”的方法来保存16位灰度图像? - meller92
很遗憾,它看起来并不是这样。 - David Heffernan
我能否直接将TPngImage分配给TWicImage?当我尝试这样做时,会出现异常“无法分配...” - meller92
似乎不是这样 - David Heffernan
我从GitHub上下载了Graphics32,如何在XE7上正确安装它? 我已经为XE7编译和安装了包,但是当我尝试编译示例时,出现了[dcc32 Fatal Error] MainUnit.pas(38): F1026 File not found: 'GR32.inc'错误。 - meller92

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