作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我正在处理的项目中使用 libpng。现在,帧被 1 1 读取到内存中,使用以下命令将内存分配给 read
和 info
结构:
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/
我在我正在处理的项目中使用 libpng。现在,帧被 1 1 读取到内存中,使用以下命令将内存分配给 read 和 info 结构: pngPtr = png_create_read_struct(P
我是一名优秀的程序员,十分优秀!