Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/enough-software/enough_ascii_art
ASCII art library written in pure Dart.
https://github.com/enough-software/enough_ascii_art
ascii-art ascii-graphics dart dartlang figlet
Last synced: 1 day ago
JSON representation
ASCII art library written in pure Dart.
- Host: GitHub
- URL: https://github.com/enough-software/enough_ascii_art
- Owner: Enough-Software
- License: mpl-2.0
- Created: 2020-04-01T07:22:46.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-02-06T10:32:26.000Z (almost 2 years ago)
- Last Synced: 2024-03-26T02:24:13.310Z (8 months ago)
- Topics: ascii-art, ascii-graphics, dart, dartlang, figlet
- Language: HTML
- Size: 559 KB
- Stars: 17
- Watchers: 6
- Forks: 8
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
An ASCII art library for Dart developers.
Available under the commercial friendly
[MPL Mozilla License 2.0](https://www.mozilla.org/en-US/MPL/).## Usage
Things you can do with `enough_ascii_art`:
* Generate a textual representation of an image using `convertImage(..)`.
* Create [FIGlet](https://en.wikipedia.org/wiki/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:
```dart
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 YMMdouble struck:
𝕙𝕖𝕝𝕝𝕠 𝕨𝕠𝕣𝕝𝕕```
## Installation
Add this dependency your pubspec.yaml file:```
dependencies:
enough_ascii_art: ^1.0.0
```
The latest version or `enough_ascii_art` is [![enough_ascii_art version](https://img.shields.io/pub/v/enough_ascii_art.svg)](https://pub.dartlang.org/packages/enough_ascii_art).## Features and bugs
Please file feature requests and bugs at the [issue tracker][tracker].
[tracker]: https://github.com/Enough-Software/enough_ascii_art/issues
## Run Example
After checking out this project, you can run the example from the root with this command:
```bash
dart ./example/enough_ascii_art_example.dart
```## Contribute & Known Limitations
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 availablePlease help removing these limitations!
## Some more examples
```
shadow:
____| \ | _ \ | | ___| | |
__| \ | | | | | | | |
| |\ | | | | | | | ___ |
_____|_| \_|\___/ \___/ \____|_| _|smslant:
_____ ______ __ _________ __
/ __/ |/ / __ \/ / / / ___/ // /
/ _// / /_/ / /_/ / (_ / _ /
/___/_/|_/\____/\____/\___/_//_/eftifont:
___ _ _ _ _ _ __ _ _
| __|| \| |/ \| | |/ _|| U |
| _| | \\ ( o ) U ( |_n| |
|___||_|\_|\_/|___|\__/|_n_|big:
______ _ _ ____ _ _ _____ _ _
| ____| \ | |/ __ \| | | |/ ____| | | |
| |__ | \| | | | | | | | | __| |__| |
| __| | . ` | | | | | | | | |_ | __ |
| |____| |\ | |__| | |__| | |__| | | | |
|______|_| \_|\____/ \____/ \_____|_| |_|isometric1:
___ ___ ___ ___ ___ ___
/\ \ /\__\ /\ \ /\__\ /\ \ /\__\
/::\ \ /::| | /::\ \ /:/ / /::\ \ /:/ /
/:/\:\ \ /:|:| | /:/\:\ \ /:/ / /:/\:\ \ /:/__/
/::\~\:\ \ /:/|:| |__ /:/ \:\ \ /:/ / ___ /:/ \:\ \ /::\ \ ___
/:/\:\ \:\__\ /:/ |:| /\__\ /:/__/ \:\__\ /:/__/ /\__\ /:/__/_\:\__\ /:/\:\ /\__\
\:\~\:\ \/__/ \/__|:|/:/ / \:\ \ /:/ / \:\ \ /:/ / \:\ /\ \/__/ \/__\:\/:/ /
\:\ \:\__\ |:/:/ / \:\ /:/ / \:\ /:/ / \:\ \:\__\ \::/ /
\:\ \/__/ |::/ / \:\/:/ / \:\/:/ / \:\/:/ / /:/ /
\:\__\ /:/ / \::/ / \::/ / \::/ / /:/ /
\/__/ \/__/ \/__/ \/__/ \/__/ \/__/chunky:
_______ _______ _______ _______ _______ _______
| ___| | | | | | __| | |
| ___| | - | | | | | |
|_______|__|____|_______|_______|_______|___|___|
```