タグ別アーカイブ: png

PNGのIDATチャンクで悩んだ話

やりたくなってPNGを読み込むプログラムで悩んだことがあったので記録代わりに

今回は必須チャンクのみ。

ある程度書き終わってテストしていると読み込みに成功する画像と失敗する画像がある。
どうもIDATチャンクが複数に分かれている画像は読み込みに失敗しているらしい。

更に詳しく見てみると、1つ目以降のIDATチャンクのデータの伸長を失敗していた。

この時私はIDATのデータは1つ1つ伸長していくものだと思っていたが、どうやらすべてのデータを繋げた後に伸長をするようだ。

こんなことにしばらく悩んだことが腹立たしい。
そもそも何故IDATチャンクを複数に分ける必要があるのだろうか…
きっと意味があるのだろう。

IDATチャンクが複数あるときは連続しているようなので、割りと簡単にコードを書くことができた。

せっかくOculusを買ったというのに全く活用できないでいる。
こんなところで躓いていないでさっさとOculusを使ったゲームを作りたい。