saitoha / libsixel

A SIXEL encoder/decoder implementation derived from kmiya's sixel (https://github.com/saitoha/sixel).
MIT License
2.49k stars 83 forks source link

img2sixel で libpng を使用すると http://www.schaik.com/pngsuite/basn0g01.png をリサイズした結果が表示されない #34

Closed msmhrt closed 9 years ago

msmhrt commented 9 years ago

【概要】 img2sixel で libpng を使用すると http://www.schaik.com/pngsuite/basn0g01.png をリサイズした結果が表示されない

【発生環境】 OS: Ubuntu 14.04.2 LTS (amd64) Terminal: mlterm version 3.4.3 post/2015-02-22

【詳細】 libpng を使用するようにビルドした master ブランチ( https://github.com/saitoha/libsixel/commit/7efd9a4bb4f95d7842fe7cec3b9cf8f48f009804 ) の img2sixel-h オプションまたは -w オプションを指定(例: -h 32)して http://www.schaik.com/pngsuite/basn0g01.png を表示しようとすると何も表示されません。

stb_image を使用するようにビルドすれば問題ない画像が表示されます。

develop ブランチ( https://github.com/saitoha/libsixel/commit/bf23ab67f59a660320c806b83f391155fc11d622) でも上記と同様の結果になりました。

以下は使用した libpng12-dev の詳細です。

l$ apt-cache show libpng12-dev
Package: libpng12-dev
Priority: optional
Section: libdevel
Installed-Size: 655
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
Architecture: amd64
Source: libpng
Version: 1.2.50-1ubuntu2
Replaces: libpng12-0-dev, libpng3-dev (<= 1.2.5)
Provides: libpng-dev, libpng12-0-dev, libpng3-dev
Depends: libpng12-0 (= 1.2.50-1ubuntu2), zlib1g-dev
Conflicts: libpng-dev, libpng12-0-dev, libpng2 (<< 1.0.12-3), libpng2-dev
Filename: pool/main/libp/libpng/libpng12-dev_1.2.50-1ubuntu2_amd64.deb
Size: 206078
MD5sum: 1c94d131e03fc495db6b898686c5fea5
SHA1: f506b031df4a3d2d6de1098f72da52fce246644f
SHA256: f11324fe7f2432d3af9d2ce179fb7ebc34591ea18b3f0f55e1315d815a912168
Description-ja: PNG ライブラリ - 開発用
 libpng は PNG (ポータブルネットワークグラフィックス) 形式のファイルの読み書
 きを行なうためのインターフェースを実装したライブラリです。
 .
 本パッケージには、libpng を使うプログラムやパッケージを構築するのに必要 なヘッダと開発用ファイルが含まれています。
Description-md5: 748198d86eeddc4aa1418e7d1311203c
Homepage: http://libpng.org/pub/png/libpng.html
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y

$
saitoha commented 9 years ago

@msmhrt ご報告ありがとうございます。

の組み合わせで不具合が発生していました... 最適な読み方をしようとしていろいろ場合分けしているので、こういったエッジケースを洗い出さなきゃいけないですね...

msmhrt commented 9 years ago

hotfix-issue-34 ブランチ( https://github.com/saitoha/libsixel/commit/8d93fee6a0314d3702f8469dc930b7b837bbefb8 )で下記のコマンドを実行すると、

$ wget -O - "http://www.schaik.com/pngsuite/basn0g01.png" | img2sixel -w 32

下記のような壊れた画像が表示されました。 issue-34 まだ修正中だったらすみません。

ところで次のリリースは 1.4 系になるのでしょうか? その場合は develop ブランチでは発生しない Segmentation Faulthttp://www.schaik.com/pngsuite/bgai4a08.png で発生しました)を後で報告したいと思います。

saitoha commented 9 years ago

ご指摘ありがとうございます。手元のMacのlibpng1.6で動くようにしただけで、 提示して頂いたlibpngのバージョン(libpng12-dev)での確認はしていませんでした。

develop (1.5系) はまだ当分リリースできそうにないので、 1.4系に問題があれば順次マイクロバージョンを上げてリリースしていきます。

saitoha commented 9 years ago

91cf0c4 をコミットしてDebianのlibpng12-devで動作確認しました。

msmhrt commented 9 years ago

ありがとうございます。こちらの環境でも問題なきことを確認しました。

develop ブランチへの反映もよろしくお願いいたします。

saitoha commented 9 years ago

masterにマージしました。

msmhrt commented 9 years ago

本件、close されていますが、develop ブランチではまだ問題が解決していないようですので確認をお願いできますでしょうか?

saitoha commented 9 years ago

すみません。間違えて閉じてしまいました。 developには現行の1.4系と同じ修正(ローダー側で1bpp画像をRGB24bitで読む)を入れる訳ではなく、 リサイズ処理側で伸長処理を行います。

saitoha commented 9 years ago

developにも対応を入れました。

msmhrt commented 9 years ago

develop ブランチ( https://github.com/saitoha/libsixel/commit/662c66c3659acb21b31bc67e2c272c3c9379b0d0 ) で問題なきことを確認しました。

念のため master ブランチ( https://github.com/saitoha/libsixel/commit/a70ae723a529cd19e0db67a9f05bb5d90946f3d1 ) でも確認しましたが問題ありませんでした。

saitoha commented 9 years ago

ご確認ありがとうございます!