イメージファイルをターミナル用の色付アスキーアートに変換するWebAPIを公開しました。


こちらのエントリは、自分のブログサイトの1エントリのコピーです。


はじめに

ANSI エスケープシーケンス といって、Unix系のターミナル上に色付きの文字列を出力することができます。

例えば、 echo コマンドでは出力したい文字列の前に \e[35m (数値部分は任意。)といった制御文字を出力させることでターミナルに出力される文字列に色を付けることができます。

$ echo '\e[35mHello\e[0m! \e[31mWorld\e[0m!'
Hello! World!

イメージファイルを指定して、色付アスキーアート文字列を出力できたらと思いWebAPIを作成してみました。

img2txt

サイト

機能

イメージファイルのURLを指定すると、Unixターミナル用の色付アスキーアートを取得できます。

WebAPIのエンドポイントURL

  • https://img2txt.genzouw.com

使い方

基本

curl コマンドを利用するのが簡単です。
curl コマンドでWebAPIを呼び出します。

  • urlパラメータ : イメージファイルのURLを指定します。
# 右記のイメージファイルURLをWebAPIに渡します → https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png 
$ curl -sS 'https://img2txt.genzouw.com?url=https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'

ターミナルに以下のようなアスキーアートが表示されるはずです。

応用

出力内容をトリミングすることもできます。

  • tlパラメータ数値を指定します。 左からN列を除去します。
  • trパラメータ数値を指定します。 右からN列を除去します。
  • ttパラメータ数値を指定します。 上からN行を除去します。
  • tbパラメータ数値を指定します。 下からN行を除去します。
# 左から10列を削除
$ curl -sS 'https://img2txt.genzouw.com?url=https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png&tl=10'

# 上下左右10行、10列を削除
$ curl -sS 'https://img2txt.genzouw.com?url=https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png&tl=10&tr=10&tt=10&tb=10'

ひとこと

感想をお待ちしております。

2020-01-09 追記

ソースコードを Github で公開しました。