PHPackages                             stratadox/ascii-renderer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. stratadox/ascii-renderer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

stratadox/ascii-renderer
========================

Rendering engine for ascii art

v0.1(4y ago)04PHPPHP &gt;=8.0

Since Dec 15Pushed 4y ago1 watchersCompare

[ Source](https://github.com/Stratadox/AsciiRenderer)[ Packagist](https://packagist.org/packages/stratadox/ascii-renderer)[ RSS](/packages/stratadox-ascii-renderer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

Ascii Renderer
==============

[](#ascii-renderer)

A tiny rendering engine for ascii art.

What is this
------------

[](#what-is-this)

Ascii Renderer is made to facilitate ascii art projects by loading partial artworks and combining them into a (potentially animated) result.

What can it do
--------------

[](#what-can-it-do)

The module can load a custom file format into animations with masked frames.

By including references to potential other animations, a sort-of skeletal system can be used.

How to use it?
--------------

[](#how-to-use-it)

To load files:

```
use Stratadox\AsciiRenderer\FileLoader;
use Stratadox\AsciiRenderer\ImageFactory;
use Stratadox\AsciiRenderer\MaskFactory;

$loader = new FileLoader(new MaskFactory(), new ImageFactory());
$animation = $loader->load('file/name.ext');
```

To combine animations:

```
use Stratadox\AsciiRenderer\AnimationCombiner;
use Stratadox\AsciiRenderer\Combiner;
use Stratadox\AsciiRenderer\FileLoader;
use Stratadox\AsciiRenderer\ImageFactory;
use Stratadox\AsciiRenderer\MaskFactory;

$loader = new FileLoader(new MaskFactory(), new ImageFactory());
$combiner = new AnimationCombiner(new Combiner());

$animation = $combiner->combine(
    [
        'item2' => $this->loader->load('/Asset/item/kite-shield-back.txt'),
        'body' => $this->loader->load('/Asset/body/leather-jacket-walk.txt'),
        'head' => $this->loader->load('/Asset/head/default.txt'),
        'headgear' => $this->loader->load('/Asset/headgear/cap.txt'),
        'item1' => $this->loader->load('/Asset/item/axe.txt'),
    ],
    'body'
);

assert(8 === $animation->length())
assert((string) $animation->frame(0)) ===
