Siv3D / OpenSiv3D

C++20 framework for creative coding 🎮🎨🎹 / Cross-platform support (Windows, macOS, Linux, and the Web)
https://siv3d.github.io/
MIT License
1k stars 138 forks source link

ImageDecoder::GetImageInfoで取得されるGIF画像の解像度が正しくないのを修正 #1172

Closed m4saka closed 8 months ago

m4saka commented 8 months ago

下記の不具合を修正しました。ご確認をお願いいたします。

不具合内容

ImageDecoder::GetImageInfoでGIF画像の解像度を取得すると、ImageInfo::sizeに必ず「18759px×14406px」が取得されており、結果が正しくない。

不具合原因

本来7・8バイト目を幅、9・10バイト目を高さとして取り扱うべきところが、それぞれ1・2バイト目、3・4バイト目が読み込まれていた。 GIFファイルのヘッダの先頭4バイトは毎回同じデータ("GIF8")なので、毎回同じ結果(18759px×14406px)となっていた。

修正内容

先頭10バイトを読み込んで、7・8バイト目を幅、9・10バイト目を高さとして取り扱うよう修正。

Reputeless commented 8 months ago

Merged. Good catch!