3
当我尝试在TPNGImage对象上调用SaveToFile方法时,我得到了访问冲突错误。在.png保存期间访问冲突
PNG建设: pngTest:=TPngImage.CreateBlank(COLOR_GRAYSCALE, 16, 2048, 2048);
方法调用:pngTest.SaveToFile('testtttt.png');
PNG对象正确创建,因为我可以将其分配到的TImage和它的作品。
当我尝试在TPNGImage对象上调用SaveToFile方法时,我得到了访问冲突错误。在.png保存期间访问冲突
PNG建设: pngTest:=TPngImage.CreateBlank(COLOR_GRAYSCALE, 16, 2048, 2048);
方法调用:pngTest.SaveToFile('testtttt.png');
PNG对象正确创建,因为我可以将其分配到的TImage和它的作品。
这是Delphi PNG库代码中的一个缺陷。请报告给Embarcadero。
该缺陷似乎是由使用16位颜色深度触发的。如果您将代码切换为使用8位颜色,则代码将成功运行。
有没有简单的解决方法,所以如果你想继续使用16位颜色,你需要找到一个不同的PNG库。我希望微软的Windows Imaging Component库能够正常运行。或者你可以考虑使用GR32PNG扩展的Graphics32。
有什么“开箱”的方式来保存16位灰度图像吗? – meller92
它看起来不像,很遗憾 –
我可以简单地将TPngImage分配给TWicImage吗?当我尝试这样做时,我得到异常“不能分配...” – meller92