pyrecoil
========
*pyrecoil* provides Python bindings to `RECOIL <https://recoil.sourceforge.net/>`_, the Retro Computer Image Library, allowing you to open over 500 image file formats from retro computers.
Installation
~~~~~~~~~~~~
::
pip install pyrecoil
``pyrecoil`` is most useful when installed in conjunction with `Pillow <http://pillow.readthedocs.org/>`_, the active fork of the Python Image Library::
pip install Pillow
Usage
~~~~~
::
from recoil import RecoilImage
# load image from disk and decode it:
img = RecoilImage("foo.lbm")
# load image from an existing file handle:
# (filename must still be provided, as a hint to the decoder)
img = RecoilImage("foo.lbm", f)
# inspecting properties:
img.colors # number of colors used in the image
> 16
img.frames # number of alternating frames (used for 'interlace' / 'gigascreen' effects)
> 1
img.size # return a tuple of (width, height)
> (320, 200)
img.original_size # for images that have been resized to account for non-square pixels
> (320, 200)
img.platform
> 'Amiga'
# Retrieving pixel data -
# returns a bytearray consisting of three bytes (r, g, b) for each pixel,
# in left-to-right, top-to-bottom order
pixels = img.get_pixels()
# convert to a PIL / Pillow image object:
pil_image = img.to_pil()
pil_image.save('foo.png')
Build notes
~~~~~~~~~~~
The RECOIL library itself is implemented in the `Fusion Programming Language <https://fusion-lang.org>`_. For ease of distribution, the generated C output (``recoil.c`` and ``recoil.h``) from the ``fut`` transpiler is included in the package - this, along with ``recoil_interface.c``, forms the Python extension module.
Author
~~~~~~
Matt Westcott - matt@west.co.tt, https://icosahedron.website/@gasman
Raw data
{
"_id": null,
"home_page": "http://github.com/demozoo/pyrecoil",
"name": "pyrecoil",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Matt Westcott",
"author_email": "matt@west.co.tt",
"download_url": "https://files.pythonhosted.org/packages/0a/47/6cfa824a7b9253748f6cc2d3c2fe238db3be8c1f7cf1d2968218ffb88909/pyrecoil-0.3.11.tar.gz",
"platform": null,
"description": "pyrecoil\n========\n\n*pyrecoil* provides Python bindings to `RECOIL <https://recoil.sourceforge.net/>`_, the Retro Computer Image Library, allowing you to open over 500 image file formats from retro computers.\n\nInstallation\n~~~~~~~~~~~~\n\n::\n\n pip install pyrecoil\n\n``pyrecoil`` is most useful when installed in conjunction with `Pillow <http://pillow.readthedocs.org/>`_, the active fork of the Python Image Library::\n\n pip install Pillow\n\nUsage\n~~~~~\n\n::\n\n from recoil import RecoilImage\n\n # load image from disk and decode it:\n img = RecoilImage(\"foo.lbm\")\n\n # load image from an existing file handle:\n # (filename must still be provided, as a hint to the decoder)\n img = RecoilImage(\"foo.lbm\", f)\n\n # inspecting properties:\n img.colors # number of colors used in the image\n > 16\n\n img.frames # number of alternating frames (used for 'interlace' / 'gigascreen' effects)\n > 1\n\n img.size # return a tuple of (width, height)\n > (320, 200)\n\n img.original_size # for images that have been resized to account for non-square pixels\n > (320, 200)\n\n img.platform\n > 'Amiga'\n\n # Retrieving pixel data -\n # returns a bytearray consisting of three bytes (r, g, b) for each pixel,\n # in left-to-right, top-to-bottom order\n pixels = img.get_pixels()\n\n # convert to a PIL / Pillow image object:\n pil_image = img.to_pil()\n pil_image.save('foo.png')\n\nBuild notes\n~~~~~~~~~~~\n\nThe RECOIL library itself is implemented in the `Fusion Programming Language <https://fusion-lang.org>`_. For ease of distribution, the generated C output (``recoil.c`` and ``recoil.h``) from the ``fut`` transpiler is included in the package - this, along with ``recoil_interface.c``, forms the Python extension module.\n\nAuthor\n~~~~~~\n\nMatt Westcott - matt@west.co.tt, https://icosahedron.website/@gasman\n\n\n",
"bugtrack_url": null,
"license": "GPLv2+",
"summary": "Python bindings for RECOIL, the Retro Computer Image Library",
"version": "0.3.11",
"project_urls": {
"Homepage": "http://github.com/demozoo/pyrecoil"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3b1ea26f531be83217df73f3f8ed4181519be2c9b839634cf7797e7f151e5e6e",
"md5": "105fcca5901a71d5a7ab430bb9b2c0e3",
"sha256": "7fc24099bf4748b50a9864f3d544c35c6d11443ba55dd77e85bfbdbda1087efd"
},
"downloads": -1,
"filename": "pyrecoil-0.3.11-cp310-cp310-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "105fcca5901a71d5a7ab430bb9b2c0e3",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 563798,
"upload_time": "2024-10-29T02:39:00",
"upload_time_iso_8601": "2024-10-29T02:39:00.504811Z",
"url": "https://files.pythonhosted.org/packages/3b/1e/a26f531be83217df73f3f8ed4181519be2c9b839634cf7797e7f151e5e6e/pyrecoil-0.3.11-cp310-cp310-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8848fda82f1eee61e21f6ee0b83ce0375e686119c806e6c40bb62f03ddafb079",
"md5": "33d6522f3710f339c35f95417f3e95e2",
"sha256": "e9346588cd5dc2058276b8ec9b8574c897f7fbc6ad90454f42837c33edd4804b"
},
"downloads": -1,
"filename": "pyrecoil-0.3.11-cp311-cp311-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "33d6522f3710f339c35f95417f3e95e2",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 563798,
"upload_time": "2024-10-29T02:39:02",
"upload_time_iso_8601": "2024-10-29T02:39:02.654961Z",
"url": "https://files.pythonhosted.org/packages/88/48/fda82f1eee61e21f6ee0b83ce0375e686119c806e6c40bb62f03ddafb079/pyrecoil-0.3.11-cp311-cp311-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4bf61803db453045605a3cec69f3a7e5b4912fed772aabc356a8d82946f31cbd",
"md5": "6e59a0cf6333735f9b8b0b36e2c2f078",
"sha256": "1ed0bc6a8e42f64eaf62ebb0de1da92e7830f2ee999f73202a5dd18eb813787f"
},
"downloads": -1,
"filename": "pyrecoil-0.3.11-cp312-cp312-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "6e59a0cf6333735f9b8b0b36e2c2f078",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 563763,
"upload_time": "2024-10-29T02:39:05",
"upload_time_iso_8601": "2024-10-29T02:39:05.297688Z",
"url": "https://files.pythonhosted.org/packages/4b/f6/1803db453045605a3cec69f3a7e5b4912fed772aabc356a8d82946f31cbd/pyrecoil-0.3.11-cp312-cp312-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3f4006eca6d09dab40b6cea3c7a9b73a477834eb787f2c1f123da8c92f0edc7b",
"md5": "6dfbb6e24cd394733926373d3016f8fa",
"sha256": "10c84b1f5480575e403c034b19d9ae8f340ae01d533de1ab275ce96af8900036"
},
"downloads": -1,
"filename": "pyrecoil-0.3.11-cp313-cp313-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "6dfbb6e24cd394733926373d3016f8fa",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 566135,
"upload_time": "2024-10-29T02:39:07",
"upload_time_iso_8601": "2024-10-29T02:39:07.206711Z",
"url": "https://files.pythonhosted.org/packages/3f/40/06eca6d09dab40b6cea3c7a9b73a477834eb787f2c1f123da8c92f0edc7b/pyrecoil-0.3.11-cp313-cp313-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "091d43d1c9ade4a0ec659d6f3baea278f40ac7eb4ab7f15189459b922cc0c3b6",
"md5": "0a9f9cb57d697886ad9b1ae7757d9402",
"sha256": "1ae3c5de1087fa8e5cc1951470e2166b727bd14345b9cf5ee4004cbeafabb098"
},
"downloads": -1,
"filename": "pyrecoil-0.3.11-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "0a9f9cb57d697886ad9b1ae7757d9402",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 292481,
"upload_time": "2024-10-29T02:39:08",
"upload_time_iso_8601": "2024-10-29T02:39:08.764118Z",
"url": "https://files.pythonhosted.org/packages/09/1d/43d1c9ade4a0ec659d6f3baea278f40ac7eb4ab7f15189459b922cc0c3b6/pyrecoil-0.3.11-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "27ba0ce7f736a47e55f26e83072601ec0c07dc3396764cdb162453b80a828705",
"md5": "1fca7f469530e30e86c633ac82a61bed",
"sha256": "aeb019a866c9d71a7844894c5206101009f5287f1e6aefbdf825367ef2c58db8"
},
"downloads": -1,
"filename": "pyrecoil-0.3.11-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "1fca7f469530e30e86c633ac82a61bed",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 292551,
"upload_time": "2024-10-29T02:39:10",
"upload_time_iso_8601": "2024-10-29T02:39:10.308007Z",
"url": "https://files.pythonhosted.org/packages/27/ba/0ce7f736a47e55f26e83072601ec0c07dc3396764cdb162453b80a828705/pyrecoil-0.3.11-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0a476cfa824a7b9253748f6cc2d3c2fe238db3be8c1f7cf1d2968218ffb88909",
"md5": "8746ecff64fd5c2c1167ff7f7bbd3b98",
"sha256": "6047250cf301d06ab9f4fb1123680cdf47bf08ef6808e8d2828d5101eb526d49"
},
"downloads": -1,
"filename": "pyrecoil-0.3.11.tar.gz",
"has_sig": false,
"md5_digest": "8746ecff64fd5c2c1167ff7f7bbd3b98",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 141008,
"upload_time": "2024-10-29T02:39:11",
"upload_time_iso_8601": "2024-10-29T02:39:11.933559Z",
"url": "https://files.pythonhosted.org/packages/0a/47/6cfa824a7b9253748f6cc2d3c2fe238db3be8c1f7cf1d2968218ffb88909/pyrecoil-0.3.11.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-29 02:39:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "demozoo",
"github_project": "pyrecoil",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyrecoil"
}