Open msmhrt opened 9 years ago
実は1.4系で使用しているstb_image v1.41 は本来1/2/4bpp PNGが読めなくて、#1 をはじめとするいくつかのコミットで無理矢理1/4bpp対応した、という経緯がありました。(だから2bppは読めないはず) developではstb_image v2.0 を使用しているので、読めます。
このあたりのPRを1.4系にポートしてくることを考えています。 https://github.com/nothings/stb/pull/45/files
やはりこのままstb_imageの2つのカスタマイズバージョン(animated GIF対応とかも入っている)を保守し続けるのはつらいので、v2.02に上げる方向の修正をしてみました。(4572316)
次のリリースを develop
ブランチから透過色関係と背景色関係を抜いた 1.5.0 にできるのであれば、それが良いような気もするのですが、難しいですよね。
stb_image を v2.02 にすると対応フォーマットが変わる(んですよね?)ので、ドキュメントの方もよろしくお願いします。
@msmhrt ええ、v1.5はピクセルフォーマットの追加やimg2sixelでやっていたことをコアにもってくるなどの大きめの修正が入っています。 ドキュメントの修正も同時にリリースしようと思います。ご指摘ありがとうございます。
hotfix-issue-37
ブランチ ( https://github.com/saitoha/libsixel/commit/45723162519551fbdf92a7416f2a625f7fc3a637 ) で --without-png
した時に http://www.schaik.com/pngsuite/f99n0g04.png で下記の壊れた画像が表示されました。
develop
ブランチ ( https://github.com/saitoha/libsixel/commit/e953d9cd19f7e9416565ed7af12722133ab544fb ) でも同様の画像になるようです。
catchありがとうございます。 スキャンラインごとに異なるフィルタタイプをもつPNGは、もともとstb_imageでは非対応だったようです。 まずはどのくらいの修正規模になるかを検討して、相当面倒な話だったらwontfixでドキュメントのみの対応、いけそうであれば修正後、本家にパッチを提出してみるという流れになると思います。
なるほど、元々 stb_image で表示できない画像だったということですね。
壊れた画像が表示されるというのは何となく不安なので、いっそ全く表示されない方が安心できるかもしれません。(笑)
「スキャンラインごとに異なるフィルタタイプをもつ」という時点で相当意地が悪いと思うので、あまり心配しなくてもいいかなという気はしています。 stb_imageのもともとの理念としては、ゲームで組み込みのテクスチャを読ませるなどの用途を想定していて、こういうのを本家の方に対応して下さいとはちょっと言い辛い感じなんですよね。
なるほど、本来想定されていた用途はそういう用途だったんですね。
PngSuite のチェックサムが壊れた画像を表示できる理由が何となく分かった気がします。
ひょっとすると壊れた画像を表示する位なら何も表示しないで欲しいという要望の方が通りやすいかもしれませんね。
【概要】
img2sixel
で stb_image を使用すると http://www.schaik.com/pngsuite/basn0g01.png が正しく表示されない【発生環境】 OS: Ubuntu 14.04.2 LTS (amd64) Terminal: mlterm version 3.4.3 post/2015-02-22
【詳細】
master
ブランチ( https://github.com/saitoha/libsixel/commit/7efd9a4bb4f95d7842fe7cec3b9cf8f48f009804 ) 及びfixfix-issue-34
ブランチ( https://github.com/saitoha/libsixel/commit/91cf0c45d6dcaec97afdf4b49db5775ba5b77916 ) で stb_image を使って http://www.schaik.com/pngsuite/basn0g01.png を表示すると下記の画像が表示されます。libpng を使った場合は正常な画像が表示されます。
develop
ブランチ( https://github.com/saitoha/libsixel/commit/e953d9cd19f7e9416565ed7af12722133ab544fb ) では stb_image を使った場合も問題ありませんでした。