Closed msmhrt closed 9 years ago
書き方がちょっとまずかったかもしれませんが、他のブランチでも発生していますので hotfix-issue-29
ブランチだから問題というわけではありません。
今回は -I
オプション等では問題を回避できなかったのですが、確認した中では唯一、develop
ブランチで -B "#000000"
を指定した時だけ下記のような画像が出力されました。
libpngの実装を軽く眺めた限りでは、アルファチャネルを抜く操作(png_strip_alpha)を指定することによって、
となるようです。
この場合はマスキング処理になってしまっていました。 そこで、背景色が引数で指定されず、画像のヘッダ中に背景色も無い場合は、黒を背景色としてセットすることにしました。
なお、hotfix-issue-29 はlibsixel-1.4系にマージされる予定ですが、1.4系には背景色関係の修正を入れる予定はありません。
なので、fix-issue-25からブランチを生やしてfix-issue-31を作りました。 この修正は、1.5系でリリースされると思います。
マスキング処理になるので色の境界が汚くなっただけなのでしょうか?
マスキング処理の詳細は分かりませんが、
黒黒黒黒赤赤赤赤
ではなく、
黒黒黒赤黒赤赤赤
になっている箇所がありましたので、何らかの要因で意図していない結果になっているのでは?と疑っています。
気になったのでちゃんと検証してみると、以下のような感じです。 上は赤成分、下はアルファ成分(それぞれ0以外の部分を2桁の16進数で)です。
アルファ値が1-4のピクセルが輪郭を縁取るように存在しています。 0の部分だけがマスクされているので境界がおかしいのだと思います。
元画像のデータがそのようになっているので、マスキング処理をした場合はあの画像にならざるを得ないということですね。
こちらの確認不足で、お手数をおかけしました。m(__)m
1488be8 が入ったv1.5
リリースされたので閉じます。
OS: Ubuntu 14.04.1 (amd64)
hotfix-issue-29
ブランチ( https://github.com/saitoha/libsixel/commit/b6748d1a49477200a7dfb93c767207d96aec53d5 ) で下記のコマンドを実行すると、下記のような画像が表示されます。
問題視しているのは赤と黒の境界が汚い点です。
(2015-02-16 07:40 追記)画像を添付しようとして Submit してしまったので後から追加しました。