An ASCII art library for Dart developers.
Available under the commercial friendly MPL Mozilla License 2.0.
Things you can do with enough_ascii_art
:
- Generate a textual representation of an image using
convertImage(..)
. - Create FIGlet text banners with
renderFiglet(..)
. - Convert ASCII text into UTF-8 "fonts" like 𝕕𝕠𝕦𝕓𝕝𝕖 𝕤𝕥𝕣𝕦𝕔𝕜 with
renderUnicode(..)
. - Convert common UTF-8 emoticons to their text-representation with
convertEmoticons(..)
.
Usage example:
import 'dart:io';
import 'package:enough_ascii_art/enough_ascii_art.dart' as art;
import 'package:image/image.dart' as img;
void main() async {
final bytes = await File('./example/enough.jpg').readAsBytes();
final image = img.decodeImage(bytes)!;
var asciiImage = art.convertImage(image, maxWidth: 40, invert: true);
print('');
print(asciiImage);
var helloWithUtf8Smileys = 'hello world 😛';
var helloWithTextSmileys =
art.convertEmoticons(helloWithUtf8Smileys, art.EmoticonStyle.western);
print('');
print(helloWithTextSmileys);
print('');
print('cosmic:');
var fontText = await File('./example/cosmic.flf').readAsString();
var figure = art.renderFiglet('ENOUGH', art.Font.text(fontText));
print(figure);
print('');
var unicode = art.renderUnicode('hello world', art.UnicodeFont.doublestruck);
print('double struck:');
print(unicode);
}
The above code renders the following output:
%%%%%%%%%%%%%%%%%%@%@%#%#%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%## -@%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%. .#%%%%%%%%%%%
%%%%%%%%%%%%%%%%%# #%%%%%%%%%%%
%%%%%%%%%%%%%%%%#@ %%%%%%%%%%%
%%%%%%%%%%%%% #* # @ %%%%%%%%%%%
%%%%%%%%%%%%%%- * =% #%%%%%%%%%%
%%%%%%%%%%%%%%@# *% .#%%%%%%%%%
%%%%%%%%%%%%%%%%- .@%% %%%%%%%%
%%%%%%%%%%%%%%%= @%%@ #%%%%%
%%%%%%%%%%%%%%# #%%= ##%%
%%%%%%%%%%%%%%%. . #%
%%%%%%%%%%%%%%%%@ *
%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%% #
%%%%%%%%%%%%%%%%%%%%%%- +%%
%%%%%%%%%%%%%%%%%%%%%%%. %%%
%%%%%%%%%%%%%%%%%%%%%%%. :%%%%
%%%%%%%%%%%%%%%%%%%%%%. +@%%
%%%%%%%%%%%%%%%%%%%%%% +%%%%%@ @%%
%%%%%%%%%%%%%%%%%%%%%. @%%%%%# %%
%%%%%%%%%%%%%%%%%%%%% #%%%%%@ %%
%%%%%%%%%%%%%%%%%%%%%%- -%%%%%% %%
hello world :-P
cosmic:
.,:::::::::. :::. ... ... ::: .,-:::::/ :: .:
;;;;''''`;;;;, `;;; .;;;;;;;. ;; ;;;,;;-'````' ,;; ;;,
[[cccc [[[[[. '[[,[[ \[[,[[' [[[[[[ [[[[[[/,[[[,,,[[[
$$"""" $$$ "Y$c$$$$$, $$$$$ $$$"$$c. "$$ "$$$"""$$$
888oo,__ 888 Y88"888,_ _,88P88 .d888 `Y8bo,,,o88o 888 "88o
""""YUMMMMMM YM "YMMMMMP" "YmmMMMM"" `'YMUP"YMM MMM YMM
double struck:
𝕙𝕖𝕝𝕝𝕠 𝕨𝕠𝕣𝕝𝕕
Add this dependency your pubspec.yaml file:
dependencies:
enough_ascii_art: ^1.0.0
The latest version or enough_ascii_art
is .
Please file feature requests and bugs at the issue tracker.
After checking out this project, you can run the example from the root with this command:
dart ./example/enough_ascii_art_example.dart
Any contributions are welcome!
Known limitations:
- Images are always converted to grayscale
- The FIGlet banners are currently only supported with left-to-right text direction
- The FIGlet banners are not wrapped into multiple lines
- You cannot list all available FIGlet fonts, but instead need to know their names (check out the figlet/fonts directory!)
- Currently only western style text emoticons are available
Please help removing these limitations!
shadow:
____| \ | _ \ | | ___| | |
__| \ | | | | | | | |
| |\ | | | | | | | ___ |
_____|_| \_|\___/ \___/ \____|_| _|
smslant:
_____ ______ __ _________ __
/ __/ |/ / __ \/ / / / ___/ // /
/ _// / /_/ / /_/ / (_ / _ /
/___/_/|_/\____/\____/\___/_//_/
eftifont:
___ _ _ _ _ _ __ _ _
| __|| \| |/ \| | |/ _|| U |
| _| | \\ ( o ) U ( |_n| |
|___||_|\_|\_/|___|\__/|_n_|
big:
______ _ _ ____ _ _ _____ _ _
| ____| \ | |/ __ \| | | |/ ____| | | |
| |__ | \| | | | | | | | | __| |__| |
| __| | . ` | | | | | | | | |_ | __ |
| |____| |\ | |__| | |__| | |__| | | | |
|______|_| \_|\____/ \____/ \_____|_| |_|
isometric1:
___ ___ ___ ___ ___ ___
/\ \ /\__\ /\ \ /\__\ /\ \ /\__\
/::\ \ /::| | /::\ \ /:/ / /::\ \ /:/ /
/:/\:\ \ /:|:| | /:/\:\ \ /:/ / /:/\:\ \ /:/__/
/::\~\:\ \ /:/|:| |__ /:/ \:\ \ /:/ / ___ /:/ \:\ \ /::\ \ ___
/:/\:\ \:\__\ /:/ |:| /\__\ /:/__/ \:\__\ /:/__/ /\__\ /:/__/_\:\__\ /:/\:\ /\__\
\:\~\:\ \/__/ \/__|:|/:/ / \:\ \ /:/ / \:\ \ /:/ / \:\ /\ \/__/ \/__\:\/:/ /
\:\ \:\__\ |:/:/ / \:\ /:/ / \:\ /:/ / \:\ \:\__\ \::/ /
\:\ \/__/ |::/ / \:\/:/ / \:\/:/ / \:\/:/ / /:/ /
\:\__\ /:/ / \::/ / \::/ / \::/ / /:/ /
\/__/ \/__/ \/__/ \/__/ \/__/ \/__/
chunky:
_______ _______ _______ _______ _______ _______
| ___| | | | | | __| | |
| ___| | - | | | | | |
|_______|__|____|_______|_______|_______|___|___|