{
"info": {
"author": "Anton Smolin",
"author_email": "smolin.anton@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6"
],
"description": "ImgPy\n=====\n\nImage processing library for Python with animated GIFs support - proxy wrapper around `Pillow `_ library with simple usable interface and access to each frame.\n\n|pypi| |travisci|\n\n.. |pypi| image:: https://badge.fury.io/py/imgpy.svg\n :target: https://badge.fury.io/py/imgpy\n :alt: pypi version\n.. |travisci| image:: https://travis-ci.org/embali/imgpy.svg?branch=master\n :target: https://travis-ci.org/embali/imgpy\n :alt: travis ci build status\n\nFeatures\n--------\n\nAttributes:\n\n* `info `_\n* exif - dict with EXIF tags and GPS dict with GPS tags if presented\n* `format `_\n* `size `_\n* `width `_\n* `height `_\n* `mode `_\n* mode_desc - image mode description\n* frame_count - frame count\n* animated - flag, which shows if image is animated\n* frames - frame list\n\nMethods:\n\n* `convert `_\n* `crop `_\n* `filter `_\n* `paste `_\n* `resize `_\n* `rotate `_\n* `thumbnail `_\n* `transform `_\n* `transpose `_\n* load - gets called when you access **frames** attribute for the first time or call any processing or save method, call this method explicitly to load all or limited number of frames (first n frames or random n frames without reordering)\n* save - save image\n* close - close image\n\nRequirements\n------------\n\n* Python 3.5+\n* Pillow 4.1.1+\n\nSetup\n-----\n\n.. code-block:: bash\n \n python-3.6 -m venv .env\n source .env/bin/activate\n pip install imgpy\n\nUsage\n-----\n\n.. code-block:: python\n\n from imgpy import Img\n\n\n # Crop image\n with Img(fp='test.gif') as im:\n im.crop(box=(10, 10, 110, 110))\n im.save(fp='crop.gif')\n\n # Create thumbnail image\n with Img(fp='test.gif') as im:\n im.thumbnail(size=(100, 100))\n im.save(fp='thumb.gif')\n\n # Save 10 random GIF frames\n with Img(fp='test.gif') as im:\n im.load(limit=10, first=False)\n im.save(fp='random.gif')\n\nTests\n-----\n\nRun tests: py.test\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/embali/imgpy/",
"keywords": "image info crop resize thumbnail gif",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "imgpy",
"package_url": "https://pypi.org/project/imgpy/",
"platform": "",
"project_url": "https://pypi.org/project/imgpy/",
"project_urls": {
"Homepage": "https://github.com/embali/imgpy/"
},
"release_url": "https://pypi.org/project/imgpy/1.1.0/",
"requires_dist": null,
"requires_python": "",
"summary": "Image processing library for Python with animated GIFs support",
"version": "1.1.0"
},
"last_serial": 2873915,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "63e2b85c7322fa31cd2f4f9a55f42756",
"sha256": "f41f7884e66d21759a506d0ffc2034cdba84ea80e171796a581f89dac91eaa18"
},
"downloads": -1,
"filename": "imgpy-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "63e2b85c7322fa31cd2f4f9a55f42756",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 3881,
"upload_time": "2017-05-09T17:38:00",
"url": "https://files.pythonhosted.org/packages/8d/1e/5f9e3e7a2cbe66f008e9d2df11406d940ed71b91e187e558041fb1d691e9/imgpy-0.1.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c0638812d0d8083efcfbbe21409893d9",
"sha256": "70b8af5486020124cd4a214ef37eebe40030c5ef223694ae7a5092b00adf8cd5"
},
"downloads": -1,
"filename": "imgpy-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "c0638812d0d8083efcfbbe21409893d9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3237,
"upload_time": "2017-05-09T17:37:47",
"url": "https://files.pythonhosted.org/packages/82/92/084bd6a0720bc156e2db6cafd7902795e5daa28603a7fce60ed84b9666fa/imgpy-0.1.0.tar.gz"
}
],
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "267d27988802b7fd34596602c184d0a0",
"sha256": "a3ab733a7d60db1f00167154462a4cb92b7afab9a36f7b4ceabaca7abc328cf1"
},
"downloads": -1,
"filename": "imgpy-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "267d27988802b7fd34596602c184d0a0",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 4509,
"upload_time": "2017-05-13T20:33:41",
"url": "https://files.pythonhosted.org/packages/23/8d/a7f066a145f41bb50cbb8bb11c8411b3d3e967899dba133f354244cbf32e/imgpy-1.0.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7c97b277ef84ec771ffd66c7081c3c1d",
"sha256": "df931f3dee32bfb5205df465cc6baa0b4eb83b604f79fdecaada92c318c7d52a"
},
"downloads": -1,
"filename": "imgpy-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "7c97b277ef84ec771ffd66c7081c3c1d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3613,
"upload_time": "2017-05-13T20:33:32",
"url": "https://files.pythonhosted.org/packages/c0/4d/0808a5fd85a20b97e0ff6932cac02614917d2b9f2f172249c827a8d29224/imgpy-1.0.0.tar.gz"
}
],
"1.1.0": [
{
"comment_text": "",
"digests": {
"md5": "6f60337d0ac1378db42645c3dafd6c14",
"sha256": "7f04b0911da0f1b44a17f54bbc3358f8e4cf62144ece8238222b8f54a429b1e0"
},
"downloads": -1,
"filename": "imgpy-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f60337d0ac1378db42645c3dafd6c14",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 5393,
"upload_time": "2017-05-14T19:52:54",
"url": "https://files.pythonhosted.org/packages/06/2f/11b168eb9a71762f12dc7fff292d5f28c839cd058b825ace3eeba0257dd6/imgpy-1.1.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "36b16170c5fbc51885a625814a848bd0",
"sha256": "ae154ec31f4b095ad5acb8ed7165e5f1c13b96768d998f322498382afa1abc13"
},
"downloads": -1,
"filename": "imgpy-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "36b16170c5fbc51885a625814a848bd0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4273,
"upload_time": "2017-05-14T19:52:45",
"url": "https://files.pythonhosted.org/packages/65/1e/7f8cdfc3072438a16c433b4adf4a421eb3b4a47dcf28efe44858b2c79fcd/imgpy-1.1.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "6f60337d0ac1378db42645c3dafd6c14",
"sha256": "7f04b0911da0f1b44a17f54bbc3358f8e4cf62144ece8238222b8f54a429b1e0"
},
"downloads": -1,
"filename": "imgpy-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f60337d0ac1378db42645c3dafd6c14",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 5393,
"upload_time": "2017-05-14T19:52:54",
"url": "https://files.pythonhosted.org/packages/06/2f/11b168eb9a71762f12dc7fff292d5f28c839cd058b825ace3eeba0257dd6/imgpy-1.1.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "36b16170c5fbc51885a625814a848bd0",
"sha256": "ae154ec31f4b095ad5acb8ed7165e5f1c13b96768d998f322498382afa1abc13"
},
"downloads": -1,
"filename": "imgpy-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "36b16170c5fbc51885a625814a848bd0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4273,
"upload_time": "2017-05-14T19:52:45",
"url": "https://files.pythonhosted.org/packages/65/1e/7f8cdfc3072438a16c433b4adf4a421eb3b4a47dcf28efe44858b2c79fcd/imgpy-1.1.0.tar.gz"
}
]
}