Closed msmhrt closed 9 years ago
これはもともと認識していた問題で、stb_imageという画像ローダーコンポーネントが、progressive jpegを読めないために起こります。 現時点での対策としては、以下のような方法があります。
1. libjpeg-devを入れて./configure --with-jpegでビルド
2. gdk-pixbuf2を入れて./configure --with-gdk-pixbuf2でビルド
3. gdを入れて./configure --with-gdでビルド
ただし、つい1ヶ月ほど前、stb_imageにprogressive jpegをサポートする修正が入っているので、 このIssueはstb_imageをupdateすることで解決しそうです。 それでもjpeg2000とかはまだstb_imageでは読めないですが。
そういうことだったんですね。
とりあえず、libjpeg-dev
をインストールしたら、./configure
が自動的に検出して images/snake-progressive.jpg
が無事表示されるようになりました。
お手数おかけしました。m(__)m
raw 出力で md5 チェックする件、検討してみます。 ご提案ありがとうございます。
stb_imageをv2に更新したので、develop
ブランチでlibjpegに依存せずにprogressive jpegが読めるようになったはずです。リリース的には1.5から入ると思います。
お、それは朗報ですね。
今は w3m
で閲覧する際に release-1.4
ブランチを主に使っていますが、少し落ち着いたら develop
ブランチも使うようにしたいと思います。
ちなみに、プログレッシブ JPEG 以外に、libjpeg を使うメリットって何かあるでしょうか? もしあるようでしたらドキュメントに書いてあるとユーザーが助かると思います。
私もstb_imageで読めるものと読めないもの、libjpeg
のメリットを正確に把握できていないんですが、とりあえずstb_imageの但し書きを参考に、 manpage-img2sixel-imageformat
ブランチで入力フォーマットについての追記を行いました(c7a4495d42ce2ba23a13a4d31b9fe0983e20bd48)。英語が相当怪しいですが。
あと自分で計測はしてないんですが、stb_imageのprogressive jpegのデコードは、現段階では相当遅いらしいです。
確認しました。stb_image の制限が分かったので助かります。
v1.5
をリリースしたので閉じます。
最近確認していなかったので念のため、master ブランチで --without-jpeg オプションつきでビルドして問題なきことを確認しました。
ありがとうございます。
img2sixel で images/snake-progressive.jpg を表示しようとすると下記のエラーが表示されます。
発生環境は、 https://github.com/saitoha/libsixel/issues/23 と同じです。 (すみません。上記の Issue で他の画像は問題ないと報告したのですが、見逃していたようです。)
以下は単なる案ですが、ヘッダの細かい違いの影響を避けるために画像データを raw 出力してから、その md5 を
make check
でチェックするようにすると良いのかもしれませんね。 (浮動小数点演算の精度とかが厄介かもしれませんが)