このようなニースの無料の「image to ASCII art」変換サイト: ASCII-art.org
このような画像変換アルゴリズムはどのように機能しますか?
、 。 W、 W W @ W、W W 、W、:W * .W #WW @WW WW# W WW.WWW WW:W W. WW * WWW#WW @ W *:WW.WWWWWWW @ WWW @ W# + *#WW#WWWWWWWWWWWWW#W W#@WWWWWWWWWWWWWWWWWWW W WW WWWWWWWWWWWWWWWWWW W WW WWWWWWWWWWWWWWWWWWWW# 、WW .WWWWWWWWWWWWWWWWWWWWW WW @ WWWWWWWWWWWWWWWWWWWWW :WWWWWWWWWWWWWWWWWWWWWWWWWW: @ WWWWWWWW @ WWWWWWW @@ WWWWWW。 W * WWWWWW :::: @ WWW :::::#WWWWW WWWWWW @ :::+ * :. :: @ WWWW WWWWW @:*:。::。、。:。:WWWW @WWWW#:。:::。 。::#:@ WWW :WWW @:# :::WWWW:@WWWW WWW#*:W @ * @ W。 W:#WWW #WWWW:@ :: :: * WWWW W @ WW * W。::、。::::、:+ @@ WW#、 WWWW ## ,。:。:::。:。 .WWW :, @ WWW @:W .. :::::#。 :WWWW WWWW :: * ..:。 ::。、。 :WWWW WWWW :::。:。::::、@ WW @ WWWW:。:、:,:WW、 。:#:、:* W +。、:::。、:@ W ::。:W @ , W :. 、、 :: * @ * :、。 :@W。, @ + ..... *:::。#WWWWW::。#:.... +、 @ ... ::: *: 、、::WWWWWWW、、* :::: ..、# :... :::::: W:、@ W :::: * W。 :W ::::: ...# @@@@@@@@@@@ W @@@@@ W @@@@@@ W @@@@ W @@@ @@@@@@@:
全体像レベルの概念は単純です。
各印刷可能文字には、おおよそのグレースケール値を割り当てることができます。 「アット」記号@
明らかに「プラス」記号より視覚的に暗い+
、 例えば。実際に使用されるフォントと間隔に応じて、効果は異なります。
選択したフォントの比率に基づいて、入力画像を幅と高さが一定の長方形のピクセルブロックにグループ化します(たとえば、幅4ピクセル、高さ5ピクセルの長方形)。そのような各ブロックは、出力では1文字になります。 (上記のピクセルブロックを使用すると、240w-x-320hの画像は60文字の64行になります。)
各ピクセルブロックの平均グレースケール値を計算します。
各ピクセルブロックについて、(ステップ1からの)グレースケール値が(ステップ3からの)ピクセルブロック平均の適切な近似である文字を選択します。
これが最も簡単な演習形式です。より洗練されたバージョンでは、ピクセルブロックの候補間の関係を壊すときに、実際の文字のshapesも考慮されます。たとえば、「スラッシュ」(/
)は、「バックスラッシュ」(\
)左下から右上へのコントラスト機能があるように見えるピクセルブロックの場合。
また、 libcaca
(最新リリース2014)をご覧ください。このWebサイトでは、aalib
に対して以下の改善が行われています。
私はこれを見つけました ダニエル・フィッシャーによって書かれたCodeProjectの記事 単純なC#実装を含む画像からASCIIアートへの変換アルゴリズム。
プログラム/ライブラリが実行する手順は次のとおりです。
とても簡単ですね。
ところで:記事へのコメントで私はこれを見つけましたcool AJAX implementation: Gaia Ajax ASCII Art Generator =:
[...]標準化された一連のWebテクノロジーで簡単に実行できることを実証せざるを得ないと感じました。使用するライブラリを見つけることができるかどうかを確認しようとして、Sau Fan LeeのASCII fying .NETライブラリに関するcodeprojectの記事を見つけました。
追伸:ルーカス(コメントを参照)は別の CodeProjectの記事 を見つけました。