1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

窓辺の小石 第194回 Rainbow Sixel

マイナビニュース / 2024年12月13日 23時41分

画像提供:マイナビニュース

現在プレビュー中のWindowsターミナル Ver.1.22には、Sixelと呼ばれる、グラフィック表示機能(写真01)がある。Sixelは、縦6 bitを単位としたグラフィックス機能である。エスケープシーケンスを使い、ASCIIコードの“?”から“~”の64文字で縦6 bitのビットパターンを表現する。

Linuxには、Libsixelがあり、ライブラリを使っての変換処理などが可能になる。これに付属のimg2sixelコマンドは、画像ファイルをターミナル内に表示することができる。

また、ImageMagickがSixelに対応しており、以下のコマンドを使って、Windows側でも、WSL上でも、画像ファイルをSixelに変換して表示できる(写真02)。

magick P08741-20020422-004733.JPG -resize 50% Sixel:

エスケープシーケンスとしては、

[DCS] ["q"] [ビットパターン指定など] [ST]
ただし
[DCS] = [Esc] ["P"]
[ST] = [Esc] [\]

となる。本来のエスケープシーケンスではアスペクト比などのオプション指定が可能だが、Windowsターミナルでは、[DCS]の後にパラメーターを置いても無視された。

「ビットパターン指定など」に関しては、(表01)を参照されたい。

このエスケープシーケンスは、文字カーソル位置には影響を与えないが、描画の起点に現在の文字位置を使う。また、Sixel用のポインタを持ち、ビットパターンごとにポイント位置を更新する。文字間にグラフィックスを置きたいときは、エスケープシーケンスでカーソル位置を必要だけ右へ移動させる必要がある。

Sixelのポインタは、”$"で先頭(Sixel描画開始位置。キャリッジリターン)に戻り、”-”(ラインフィード)で6ドット下に移動する。これらをつかわないと、ポインタはビットパターンごとに右に1ドットずつ進んでいく。エスケープシーケンス内では、間にCR、LFのコードが入っても動作には影響しない。

“#”は、色レジスタ指定を表す。Sixelでは、各ビットにRGBの0~100%の色指定が可能だ。論理的には、100×100×100=1000000色が利用できる。エスケープシーケンス内で、

“#<レジスタ番号>;2;<赤%>;<緑%>;<青%>”

上記のシーケンスで色レジスタにRGB値を設定できる。以後は、“#<レジスタ番号>”でその色を描画色に指定できる。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください