gpt4 book ai didi

png - 在 libpng 中重用 pngPtr 和 infoPtr

转载 作者:行者123 更新时间:2023-12-05 08:01:07 26 4
gpt4 key购买 nike

我在我正在处理的项目中使用 libpng。现在,帧被 1 1 读取到内存中,使用以下命令将内存分配给 readinfo 结构:

pngPtr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
infoPtr = png_create_info_struct(pngPtr);

目前,在加载图像后,上述指针被销毁使用:

png_destroy_read_struct(&pngPtr, (png_infopp)0, (png_infopp)0);

但是,我希望能够在将 png 文件读取到内存的过程开始之前生成指针(仅一次),并在读取所有 PNG 文件后销毁它们一次。换句话说,我希望能够创建一次指针,然后重新使用它们。

我使用新方法遇到的问题是,如果我在读取第一个 PNG 文件后不销毁指针,则对

的调用
png_read_info(pngPtr, infoPtr);

失败,当 libPng 尝试加载第二个 PNG 文件时。指针是否有任何特定属性需要重置才能使它们可重用于后续 PNG 文件?

为了简洁起见,我避免放置太多代码,但如果需要,我可以提供更多。

最佳答案

我认为重用结构是不可能(或不支持)的。在公共(public)文档中没有提及它,并在 current sources 中偷看显示一些在新版本中已弃用/禁用的旧 png_info_init。我想你可能会做一些黑客攻击(修改或不修改 libpng 源)来实现你的目标,但我不建议这样做——这似乎麻烦多于好处。如果你真的坚持,我会去 libpng mailing list寻求更多帮助。

关于png - 在 libpng 中重用 pngPtr 和 infoPtr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16157907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com