我在我正在处理的项目中使用 libpng。现在,帧被一一读取到内存中,使用以下命令将内存分配给read
andinfo
结构:
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 文件?
为简洁起见,我避免放太多代码,但如果需要,我可以提供更多。