【问题标题】:Acces Violation during .png saving.png 保存期间访问冲突
【发布时间】:2017-04-05 12:14:00
【问题描述】:

当我尝试在 TPNGImage 对象上调用 SaveToFile 方法时,我得到了访问冲突错误。

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

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

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

【问题讨论】:

    标签: delphi delphi-xe7


    【解决方案1】:

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

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

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

    【讨论】:

    • 是否有任何“开箱即用”的方式来保存 16 位灰度图像?
    • 看起来不像,很遗憾
    • 我可以简单地将 TPngImage 分配给 TWicImage 吗?当我尝试这样做时,我得到异常“无法分配...”
    • 貌似不是
    • 我从GitHub下载了Graphics32,如何在XE7上正确安装?我已经为 XE7 编译并安装了软件包,当我尝试编译示例时,我得到 [dcc32 Fatal Error] MainUnit.pas(38): F1026 File not found: 'GR32.inc'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    相关资源
    最近更新 更多