katakk / CBmpViewer

コンソール上でBMP画像を表示するプログラム

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cimage-viewer Build Status

コンソール上で BMP 画像をエスケープシーケンスで表示するプログラム

Windows Bitmap の無圧縮24ビットで画像データがボトムアップで保存されているビットマップのみ対応~

画素密度は小さくなるので粗い画像になる。

エスケープシーケンスでの色の再現性はターミナルソフトに依存する。

PNGは libpngで対応予定

コンパイル・インストール・使い方

$ make
$ make install
$ cbmpviewer <input.bmp> [threshold_r=128 threshold_g=128 threshold_b=128]

make install は別にしなくてもいい。 実行方法は第 1 引数に BMP 画像のファイル名を入力する。 第 2, 3, 4 引数には RGB 各値の 2 値化のときのしきい値を 0~255 の間で入力できる。省いたときのデフォルト値は 128。

$ TERM=xterm COLUMNS=120 ./cbmpviewer ikamusume_sq.bmp | tee ikamusume_sq.txt

透過画像として表示するにはTRANSPARENT=1 を指定してください。 透過には x=0, y=0 の座標の色を透過色とします。SNEG

$ TERM=xterm COLUMNS=300 TRIML=40 TRIMR=30 HEAD=270 TRANSPARENT=1 ./cbmpviewer ../風町陽歌(立ち絵).bmp

パイプも使用可能。
環境変数 COLUMNS にて横幅設定 デフォルトで 80
環境変数 TERM が xterm なのは 256 色にするため必須 大抵の場合は xterm になっている

環境変数

  • COLUMNS 横幅設定 デフォルト 80
  • t_Co 色数強制指定 8 256 16777216 デフォルト指定なし
  • TRIML 左トリム桁数 デフォルト 0
  • TRIMR 右トリム桁数 デフォルト 0
  • HEAD 上表示行数 デフォルト MAX
  • TRANSPARENT=1 透過処理有効 デフォルト 無効
  • NORLE=1 RLE無効化 デフォルト RLE有効

ffmpeg が入っている環境下であれば下記が可能:

$ bmp ikamusume_sq.jpg

端末でとりあえず画像確認できます、teratermで内容の確認がさくさくできます。

$ play "ストライク・ザ・ブラッド #16.mp4"

動画もサムネイル確認程度ならできるようです (動画は添付されません)。

$ cd /home/foltia/php/tv/4441.localized/mp4
$ play MHD-4441-2-20170118-0135-27.MP4

すごーい。君はそこまでしてアニメ見たいフレンズなんだね。たーのしー。

デモ

元画像 ikamusume_sq.bmp (のjpg画像)
元画像

$ TERM=vt100 cbmpviewer ikamusume_sq.bmp 150 160 160

を実行すると、
出力結果
こんな感じ。

$ TERM=xterm cbmpviewer ikamusume_sq.bmp

を実行すると、
出力結果
こんな感じ。

メモ

Teraterm 4.76 以降では SGR 38:2;r:g:b が使えるが現在の所 256 色表示なので効果なし。 SGR 38;5;col は Teraterm 4.8.0, xterm 271, Xfce terminal 0.4.8 で使用できることを確認。

参考サイト

About

コンソール上でBMP画像を表示するプログラム


Languages

Language:C 88.4%Language:Perl 9.8%Language:Makefile 1.8%