私が取り組んでいるプロジェクトで libpng を使用しています。現在、フレームは 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ファイルをメモリに読み込むプロセスが開始される前に(1回だけ)ポインターを生成し、すべてのPNGファイルが読み取られた後に一度破棄できるようにしたいと考えています。つまり、ポインターを一度作成して再利用できるようにしたいと考えています。
新しいメソッドで得られる問題は、最初の PNG ファイルが読み取られた後にポインターを破棄しないと、呼び出しが
png_read_info(pngPtr, infoPtr);
libPng が 2 番目の PNG ファイルを読み込もうとすると失敗します。後続のPNGファイルで再利用できるようにするためにリセットする必要があるポインターの特定のプロパティはありますか?
簡潔にするために、コードを入れすぎないようにしましたが、必要に応じてさらに多くのコードを提供できます。