画像をASCIIアート画像に変換できるコマンドラインプログラムはありますか?


19

画像をASCIIアートに変換し、その出力を画像(例:jpgまたはpng)として保存できるコマンドラインプログラム(Linux用)はありますか?

私が必要としているものを説明するために、下の画像をアスキーアートに変換したい ここに画像の説明を入力してください

プログラムからの出力は、画像からASCIIへのコンバーターの出力のスクリーンショットを撮ることによって作成されたものに似ているはずです(出力は純粋なテキストでした)

ここに画像の説明を入力してください

GIMPには画像をasciiアートとして保存する機能があり、aviewは画像をasciiに変換することもできます。ただし、前者はコマンドラインから実行できず、後者は出力を表示するだけで、保存することはできません(出力のスクリーンショットを撮りたくありません)。

libcacaは出力を画像に保存できることも知っていますが、以下のようにカラフルなASCIIのみを出力します。

ここに画像の説明を入力してください

ソース画像をグレースケールに変換してから、次のコマンドで作成します。

img2txt -W 70 -f tga input.jpg > output.tga

コマンドラインプログラムが必要な理由は、画像でいっぱいのフォルダーをバッチ処理するためです。


1
試したことはありませんが、テキストをconvert(ImageMagick)にパイプで送ることができることは知っています。img2txtの出力-fを(色付きのANSIではなく)ANSIに設定すると、結果をパイプで変換(または他の適切なソフトウェア)することができます
-horatio

@horatio:convertはファイル入力を予期しているようで、パイプからの読み取りを拒否します。とにかく一時ファイルを介してそれを行うことができます。
Takkat

回答:


7

私が作成したこのpythonコードを使用し、静止画像と動画からアスキーアートを作成できます。

https://gist.github.com/lindylex/9374326

出力例

元の ここに画像の説明を入力してください

ASCIIアート出力(python ascii_movie_image_ver_1.py cat.jpg 4 10ここに画像の説明を入力してください


2
あなた自身のサイトであっても、リンクが行き来します...コードを使用して「前」と「後」の2つのスクリーンショットを追加してください。
イラン14

4
@Ilan例を追加し、公開gitリポジトリをポイントしました
hellocatfood

14

Linuxを実行しているように見える場合は、アプリケーションを簡単につなぎ合わせて、目的の結果を得ることができます。これは、バッチ処理スクリプトに組み込むこともできます。

以下の例では、必要な結果を得るための多くのオプションを備えた強力なJPGからASCIIアートへのコンバーターであるjp2aを使用しています(マンページを参照してください)。次に、ImageMagickスイートからの変換を使用して、結果のASCIIテキストファイルをさらに画像に処理します。繰り返しますが、結果を微調整する多くのオプションがあります。どちらのアプリケーションも、ディストリビューションのリポジトリから利用できる可能性があります。

以下のサンプルスクリプトは.jpg、入力JPEGイメージからASCIIアートイメージ(提供する拡張子に応じた形式、JPEG用)を生成します。ソースは、6ポイントで160文字幅にレンダリングされます。これにより、convertで事前に定義されているデフォルトのページサイズにちょうど収まります。

#! /bin/bash
#Usage ./j2asc infile.jpg outfile.jpg

echo "converting $1 to $2"
jp2a --width=160 -i  $1 --output=tmp.txt
convert -font Courier -pointsize 6 tmp.txt $2

これはおそらく、希望する出力に最も近いでしょう。ありがとう!
hellocatfood

それ以外の幅になるように幅を指定する方法はあります835pxか?アスキーアートを1920x1080壁紙画像に変換したいのですが、-resize 1920x1080オプションを渡しても幅はのまま835pxです。

@awashburn:画像サイズは文字数(幅)とポイントサイズによって決まります。大きな出力のためにポイントサイズを大きくするか、2回目の実行で結果のイメージをスケーリングします。
タックカット14年

1
MacOSユーザーの場合:jp2aはhomebrewからも実行できます:brew install jp2a
k0pernikus 14

1
場合によっては、htmlへの直接出力も考慮してくださいjp2a --html --width=160 --chars="\'\"love" input.jpg --output=output.htm。レンダリングに好みの文字セットを指定できます(メタ文字を使用する場合は、メタ文字をエスケープする必要があります)。jp2aについてはArchのAURも参照してください。

2

Node.js Knockout 2012では、ウェブカメラビデオフィードを受け取り、「asciiフィード」を吐き出す受賞作品がありました。

アシグラム

アシグラムページ

Asciigramは、ウェブカメラを使用してASCIIビデオと画像を作成できる「生産性ツール」です。ASCII画像を作成して、画像をページにドラッグすることもできます。[リンク]

正確なコマンドラインではありませんが、ニーズに合わせて後付けすることができます。画像をasciiに変換するために使用するライブラリはJsciiと呼ばれます


1
テキストのみを出力し、画像は出力しません。さらに、コマンドラインプログラムではありません
-hellocatfood


1

Linuxを使用しているようで、すでにlibcacaを知っています。あなたが言ったことを正確に行う別のライブラリがあります(コマンドラインでのAsciiへの画像):Aalib

これを行うプログラムは多数あります。これはLinuxとWindowsの両方で機能します。外部ライブラリ、利用可能な完全なソースコードなどを使用しません...


私が知る限り、Aalibは出力を画像に直接保存することができません-スクリーンショットを含むいくつかの方法を使用する必要がありますが、これは大きな画像には信頼できません。Aalibを使用してそれを行う方法がある場合、答えを更新できますか?あなたが言及したプログラムは本当に良さそうです。バッチ変換を行いますか?コマンドラインインターフェイスはありますか?
hellocatfood

1

プログラムにコマンドラインインターフェイスがないことを知っている限り、画像をテキストに変換してから画像に変換します。ソースが利用できるので、それを使用して独自のツールを作成できます。

そう、aalibは画像を出力しませんが、テキストを出力します。コマンドラインで動作する他の多くのプログラムと同様に。

Linuxを使用している場合、asciiテキストをビットマップに変換するasciitopgmというコマンドラインプログラムがあります。これはnetpbmパッケージの一部です。

したがって、ツールの組み合わせを使用できます。

  1. テキストを使用して画像を描画するaalib
  2. asciitopgmを使用して、テキストファイルでpgmビットマップを作成します。
  3. (オプション)変換(Imagemagickパッケージから)を使用して、pgmを必要な他のラスター形式に変換します。

この方法であなたがやりたいことができると思います。


0

はい、jp2a基本的にjpg画像をアスキーアートに変換するというツールがあります。

例えば:

$ jp2a skull.jpg

オリジナルSkull.jpg

ここに画像の説明を入力してください

アスキーアートを出力

ここに画像の説明を入力してください

必ずjpg画像を使用してください。画像が他の形式の場合は、次の方法で変更できます

$ convert skull.png skull.jpg

1
こんにちは、GDSEへようこそ!これは重複した回答のようです。編集して改善するか、最終的に削除される可能性があります。
好奇心
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.