{"id":17876302,"url":"https://github.com/tehmaze/piece","last_synced_at":"2025-03-22T01:30:55.355Z","repository":{"id":20271747,"uuid":"23544846","full_name":"tehmaze/piece","owner":"tehmaze","description":"A fast, feature rich artscene parser","archived":false,"fork":false,"pushed_at":"2016-02-01T19:26:16.000Z","size":4319,"stargazers_count":19,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-01T11:34:54.151Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tehmaze.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-01T14:17:34.000Z","updated_at":"2024-12-16T07:02:20.000Z","dependencies_parsed_at":"2022-08-25T04:12:59.757Z","dependency_job_id":null,"html_url":"https://github.com/tehmaze/piece","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tehmaze%2Fpiece","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tehmaze%2Fpiece/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tehmaze%2Fpiece/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tehmaze%2Fpiece/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tehmaze","download_url":"https://codeload.github.com/tehmaze/piece/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244173517,"owners_count":20410298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-28T11:29:44.338Z","updated_at":"2025-03-22T01:30:54.967Z","avatar_url":"https://github.com/tehmaze.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# piece-c\n\nFast, feature-rich Artscene render engine\n\n\n# Example\n\n```shell\n$ piece -o docs/font/cp437_8x16.png docs/font/test.ans\n```\n\nAnd the resulting image:\n\n\u003cimg src=\"docs/font/cp437_8x16.png\" alt=\"Example rendering using CP437 8x16 font\" /\u003e\n\nWe can also request `piece` to use an Amiga font:\n\n```shell\n$ piece -f amiga -o docs/font/topaz_a1200.png docs/font/test.ans\n```\n\nResulting in:\n\n\u003cimg src=\"docs/font/topaz_a1200.png\" alt=\"Example rendering using Topaz a1200 font\" /\u003e\n\n# Features\n\n## Supported file formats\n\n* ANSi (.ans), mostly [ECMA-048](http://www.ecma-international.org/publications/standards/Ecma-048.htm) compliant\n* ASCII (.asc, .diz)\n* Artworx (.adf)\n* BIN (.bin)\n* iCE Draw (.idf)\n* PCBoard (.pcb)\n* RIPScript (.rip, TODO)\n* TundraDraw (.tnd)\n* XBIN (.xb), fully [Acid XBIN](http://www.acid.org/info/xbin/xbin.htm) compliant\n\n\n## Supported pixel fonts\n\n### MS-DOS (\"OEM\") fonts\n\nFont                  | Description           | Sizes\n--------------------- | --------------------- | -------------------------------\ncp437                 | MS-DOS Latin US       | [8x8](docs/font/cp437_8x8.png) [thin_8x8](docs/font/cp437_thin_8x8.png) [8x14](docs/font/cp437_8x14.png) [8x16](docs/font/cp437_8x16.png) [thin_8x16](docs/font/cp437_thin_8x16.png)\ncp737                 | MS-DOS Greek          | [8x16](docs/font/cp737_8x16.png)\ncp775                 | MS-DOS Baltic Rim     | [8x16](docs/font/cp775_8x16.png)\ncp850                 | MS-DOS Latin 1        | [8x8](docs/font/cp850_8x8.png) [8x14](docs/font/cp850_8x14.png) [8x16](docs/font/cp850_8x16.png) [thin_8x8](docs/font/cp850_thin_8x8.png) [thin_8x16](docs/font/cp850_thin_8x16.png)\ncp852                 | MS-DOS Latin 2        | [8x16](docs/font/cp852_8x16.png) \ncp855                 | MS-DOS Cyrillic       | [8x16](docs/font/cp855_8x16.png) \ncp857                 | MS-DOS Turkish        | [8x16](docs/font/cp857_8x16.png) \ncp860                 | MS-DOS Portuguese     | [8x16](docs/font/cp860_8x16.png) \ncp861                 | MS-DOS Icelandic      | [8x16](docs/font/cp861_8x16.png) \ncp862                 | MS-DOS Hebrew         | [8x16](docs/font/cp862_8x16.png) \ncp863                 | MS-DOS French Canada  | [8x16](docs/font/cp863_8x16.png) \ncp865                 | MS-DOS Nordic         | [8x8](docs/font/cp865_8x8.png) [8x14](docs/font/cp865_8x14.png) [8x16](docs/font/cp865_8x16.png) [thin_8x8](docs/font/cp865_thin_8x8.png) [thin_8x16](docs/font/cp865_thin_8x16.png) \ncp866                 | MS-DOS Cyrillic CIS 1 | [8x8](docs/font/cp866_8x8.png) [8x14](docs/font/cp866_8x14.png) [8x16](docs/font/cp866_8x16.png) \ncp866b                | MS-DOS Bulgarian      | [8x16](docs/font/cp866b_8x16.png) \ncp866c                | MS-DOS Russian        | [8x16](docs/font/cp866c_8x16.png) \ncp866u                | MS-DOS Ukrainian      | [8x8](docs/font/cp866u_8x8.png) [8x14](docs/font/cp866u_8x14.png) [8x16](docs/font/cp866u_8x16.png) \ncp869                 | MS-DOS Greek 2        | [8x16](docs/font/cp869_8x16.png) \ncp1251                | MS-DOS Slavic         | [8x8](docs/font/cp1251_8x8.png) [8x14](docs/font/cp1251_8x14.png) [8x16](docs/font/cp1251_8x16.png) \n\n### Amiga fonts\n\nFont                  | Description                        | Sizes\n--------------------- | ---------------------------------- | ------------------\nb_strict              | Amiga B-Strict                     | [8x8](docs/font/b_strict.png)\nb_struct              | Amiga B-Strict                     | [8x8](docs/font/b_struct.png)\nmicroknight           | Amiga MicroKnight                  | [8x16](docs/font/microknight.png)\nmicroknight_plus      | Amiga MicroKnight enhanced version | [8x16](docs/font/microknightplus.png)\nmo_soul               | Amiga mO'sOul                      | [8x16](docs/font/mo_soul.png)\np0t_noodle            | Amiga P0T-NOoDLE                   | [8x16](docs/font/p0t_noodle.png)\ntopaz_a500            | Amiga Topaz 1 (A500, A1000, A2000) | [8x16](docs/font/topaz_a500.png)\ntopazplus_a500        | Amiga Topaz 1 enhanced version     | [8x16](docs/font/topazplus_a500.png)\ntopaz_a1200           | Amiga Topaz 2 (A600, A1200, A4000) | [8x16](docs/font/topaz_a1200.png)\ntopazplus_a1200       | Amiga Topaz 2 enhanced version     | [8x16](docs/font/topazplus_a1200.png)\n\n### Atari fonts\n\nFont                  | Description                 | Sizes\n--------------------- | --------------------------- | ------------------------\natascii_arabic        | Atari ATASCII Arabic        | [8x16](docs/font/atascii_arabic_8x16.png)\natascii_graphics      | Atari ATASCII Graphics      | [8x16](docs/font/atascii_graphics_8x16.png)\natascii_international | Atari ATASCII International | [8x16](docs/font/atascii_international_8x16.png)\n\n### Commodore 64 fonts\n\nFont                  | Description                      | Sizes\n--------------------- | -------------------------------- | -------------------\npetscii               | Commodore 64 PETSCII (unshifted) | [8x16](docs/font/petscii.png)\npetscii_shifted       | Commodore 64 PETSCII (shifted)   | [8x16](docs/font/petscii_shifted.png)\n\n### Miscellanious fonts\n\nFont                  | Description               | Sizes\n--------------------- | ------------------------- | --------------------------\narmscii8              | Armenian ASCII (ARMSCII)  | [8x8](docs/font/armscii8_8x8.png) [8x14](docs/font/armscii8_8x14.png) [8x16](docs/font/armscii8_8x16.png) \nhaik8                 | haik8 code page (ARMSCII) | [8x8](docs/font/haik8_8x8.png) [8x14](docs/font/haik8_8x14.png) [8x16](docs/font/haik8_8x16.png) \niso                   | West European             | [8x8](docs/font/iso_8x8.png) [8x14](docs/font/iso_8x14.png) [8x16](docs/font/iso_8x16.png) [thin_8x16](docs/font/iso_thin_8x16.png) \niso02                 | Central European          | [8x8](docs/font/iso02_8x8.png) [8x14](docs/font/iso02_8x14.png) [8x16](docs/font/iso02_8x16.png)  \niso04                 | Baltic                    | [8x8](docs/font/iso04_8x8.png) [8x14](docs/font/iso04_8x14.png) [8x16](docs/font/iso04_8x16.png)\niso05                 | Cyrillic                  | [8x8](docs/font/iso05_8x8.png) [8x14](docs/font/iso05_8x14.png) [8x16](docs/font/iso05_8x16.png) \niso07                 | Greek                     | [8x8](docs/font/iso07_8x8.png) [8x14](docs/font/iso07_8x14.png) [8x16](docs/font/iso07_8x16.png) \niso08                 | Hebrew                    | [8x8](docs/font/iso08_8x8.png) [8x14](docs/font/iso08_8x14.png) [8x16](docs/font/iso08_8x16.png) \niso09                 | Turkish                   | [8x16](docs/font/iso09_8x16.png) \niso15                 | West European             | [8x8](docs/font/iso15_8x8.png) [8x14](docs/font/iso15_8x14.png) [8x16](docs/font/iso15_8x16.png) [thin_8x16](docs/font/iso15_thin_8x16.png) \nkoi8_r                | Russian                   | [8x14](docs/font/koi8_r_8x14.png) [8x16](docs/font/koi8_r_8x16.png) [8x8](docs/font/koi8_r_8x8.png)\nkoi8_rb               | Russian                   | [8x16](docs/font/koi8_rb_8x16.png)\nkoi8_rc               | Russian                   | [8x16](docs/font/koi8_rc_8x16.png)\nkoi8_u                | Ukrainian                 | [8x8](docs/font/koi8_u_8x8.png) [8x14](docs/font/koi8_u_8x14.png) [8x16](docs/font/koi8_u_8x16.png)\nswiss                 | ?                         | [8x8](docs/font/swiss_8x8.png) [8x14](docs/font/swiss_8x14.png) [8x16](docs/font/swiss_8x16.png) \nswiss_1131            | Belarusian                | [8x16](docs/font/swiss_1131_8x16.png)\nswiss_1251            | Cyrillic                  | [8x16](docs/font/swiss_1251_8x16.png)\n\n## Supported output formats\n\n* Text (plain text)\n* Image (bmp, gif, jpeg, png)\n\n## Supported dynamic languages\n\n*These extensions are highly experimental and subject to change*\n\n* [Perl](http://www.perl.org/) version 5.6 and up, see\n  the [piece-perl](https://github.com/bbsninja/piece-perl) project\n* [Python](http://www.python.org/) version 2.6 and 2.7, see\n  the [piece-python](https://github.com/bbsninja/piece-python) project\n\n\n# Requirements\n\nYou need the following to compile ``piece``:\n\n* [libgd](http://libgd.bitbucket.org/)\n* [Scons](http://www.scons.org/)\n* [Python](http://python.org/)\n\n\n# Building\n\nFirst inspect the build options, by running:\n\n```shellsession\n$ scons --help\n```\n\nTo compile everything from source:\n\n```shellsession\n$ scons\n```\n\nTo clean the build root:\n\n```shellsession\n$ scons -c\n```\n\n## Building the Python extension\n\nTo build the Python extension, make sure you have the Python development\nheaders installed.\n\nOn a Debian/Ubuntu based system:\n\n```shellsession\n$ sudo apt-get install python-dev\n```\n\nOn a Red Hat/RPM based system:\n\n```shellsession\n$ sudo yum install python-devel\n```\n\nTo build the extension:\n\n```\n$ scons --with-python\n```\n\n\n# Installing\n\nTo install everything into ``/usr/local``:\n\n```shellsession\n$ sudo scons install\n```\n\n\n# Uninstalling\n\nTo remove the ``piece`` installation:\n\n```shellsession\n$ sudo scons uninstall\n```\n\n\n# Acknowledgements\n\nInspired by the [Ansilove](http://ansilove.sourceforge.net/) ANSi to PNG\nconverter, the first version of ``piece`` was written in Python. Because we\nrequired more speed, the Python version was ported to pure C and lots of\nfeatures and font sets were added.\n\nThe fonts found in the [fnt](/src/piece/font/fnt/) folder, are part of the\nFreeBSD [newcons](https://wiki.freebsd.org/Newcons) project and BSD licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftehmaze%2Fpiece","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftehmaze%2Fpiece","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftehmaze%2Fpiece/lists"}