このページの本文へ

前へ 1 2 次へ

Windows Info 第463回

Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる

2025年01月05日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

アスペクト比とSixel描画

 さて、具体的にアスペクト比を変えて描画してみよう。Sixelグラフィックスのエスケープシーケンスで、アスペクト比を指定すると、1ピクセルの縦方向が、1/2/3/5ドットとなる。これにともない、ターミナル上の文字との相対サイズが変化する。

Sixelグラフィックス

 アスペクト比が2:1(<アスペクト比>設定値としては0または1)の場合、ピクセルは縦2ドット、横1ドットとなり、1文字は10×10 Sixelピクセルに相当する。これは、フォントサイズに関係がない。つまり、フォントサイズが大きくなると、それに応じてSixelピクセルのサイズが追従して大きくなる。

 たとえば、アスペクト比5:1(設定値としては2)の場合、PowerShellで記述した以下のエスケープシーケンスで、縦5ドットのSixelグラフィックスを描画できる。

$aspect=2;write-host "`e[4;10HH`eP${aspect};1;0;q@ACGO_-??????@ACGO_`e\`e[5;10HH`e[6;10HH`e[6;12HH aspect=$aspect`n"

 このとき、横方向では1文字はSixelで10ピクセルに相当し、縦方向では4ピクセルに相当する。

Sixelグラフィックス

アスペクト比5:1の場合、Sixelの1つのピクセルは画面上では、横1×縦5ピクセルとなる。なお、Sixelのピクセルは、文字フォントのサイズに合わせて拡大、縮小し、常に同じPixelドット数が文字サイズに対応する

 同じくアスペクト比3:1(設定値としては3)の場合、

$aspect=3;write-host "`e[4;10HH`eP${aspect};1;0;q@ACGO_-??????@ACGO_-????????????@ACGO_`e\`e[5;10HH`e[6;10HHHH`e[6;15Haspect=$aspect`n"

Sixelグラフィックス

アスペクト比3:1の場合、Sixelの1つのピクセルは画面上では、横1×縦3ピクセルとなる

となる。このとき、1文字の縦方向は、6.666...ドットと整数ではなくなる。このため、写真ではHで上書きされたSixelグラフィックス右下のドットが小さく欠けている。

 アスペクト比1:1(設定値としては7)の場合には、1文字は、Sixelグラフィックスでは10×20ピクセルに相当する。エスケープシーケンスとしては、

$aspect=7;write-host "`e[4;10HH`eP${aspect};1;0;q@ACGO_-??????@ACGO_-????????????@ACGO_-??????????????????@ACGO_`e\`e[5;10HHHHH aspect=$aspect`n"

Sixelグラフィックス

アスペクト比1:1の場合、Sixelの1つのピクセルは画面上では、横1×縦1ピクセルとなる

となる。

 デフォルトのアスペクト比である2:1(設定値を省略または0を指定)の場合には、1文字は10×10ピクセルに相当する。エスケープシーケンスは、以下になる。

$aspect=0;write-host "`e[4;10HH`eP${aspect};1;0;q@ACGO_-??????@ACGO_-????????????@ACGO_-??????????????????@A`e\`e[5;10HHHHH aspect=$aspect`n"

Sixelグラフィックス

アスペクト比2:1の場合、Sixelの1つのピクセルは画面上では、横1×縦2ピクセルとなる。アスペクト比を指定しない場合のデフォルト値が2:1である

 アスペクト比を変えることで、Sixelの1ビットで描画できる縦方向ドットのサイズを変更できる。ただし、現状、1ピクセルの横方向のサイズを変更する方法はなく、Sixelを横方向に並べる必要がある。

 Sixelグラフィックスは、ターミナル内の任意の場所に点を打つグラフィックスとして考えるとちょっと面倒なところがある。とりあえずは、ユーザー定義文字のように1行内でSixelグラフィックスを描画するか、ツールやライブラリ(LibSixel)を使って、画像ファイルを表示させるか、といった使い方になるのではないか。

 かつてのBASICのように、線や矩形、円などを描画するには、それぞれプログラムを記述する必要がある。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン