{ "info": { "author": "Selwin Ong", "author_email": "selwin.ong@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "|Build Status|\n\nDesign:\n\n* Uses Django Storage API\n* Uses flexible meta data store. Database and Redis metadata backend supported at the moment.\n\nInstallation\n------------\n\n* Add `thumbnails` to `INSTALLED_APPS` in `settings.py`.\n* Run `python manage.py migrate` to create database metadata backend.\n\n\nUsage\n-----\n\nsettings.py:\n\n.. code-block:: python\n\n THUMBNAILS = {\n 'METADATA': {\n 'BACKEND': 'thumbnails.backends.metadata.DatabaseBackend',\n },\n 'STORAGE': {\n 'BACKEND': 'django.core.files.storage.FileSystemStorage',\n # You can also use Amazon S3 or any other Django storage backends\n }\n 'SIZES': {\n 'small': {\n 'PROCESSORS': [\n {'PATH': 'thumbnails.processors.resize', 'width': 10, 'height': 10},\n {'PATH': 'thumbnails.processors.crop', 'width': 80, 'height': 80}\n ],\n 'POST_PROCESSORS': [\n {\n 'processor': 'thumbnails.post_processors.optimize',\n 'png_command': 'optipng -force -o7 \"%(filename)s\"',\n 'jpg_command': 'jpegoptim -f --strip-all \"%(filename)s\"',\n },\n ],\n },\n 'large': {\n 'PROCESSORS': [\n {'PATH': 'thumbnails.processors.resize', 'width': 20, 'height': 20},\n {'PATH': 'thumbnails.processors.flip', 'direction': 'horizontal'}\n ],\n }\n }\n }\n\nIf you prefer to use Redis as your metadata storage backend (like I do :):\n\n.. code-block:: python\n\n THUMBNAILS = {\n 'METADATA': {\n 'PREFIX': 'thumbs',\n 'BACKEND': 'thumbnails.backends.metadata.RedisBackend',\n 'db': 2,\n 'port': 6379,\n 'host': 'localhost',\n },\n }\n\n\nIn python:\n\n.. code-block:: python\n\n import thumbnails\n\n class Food(models.Model):\n image = thumbnails.Field()\n\n\n food = Food.objects.latest('id')\n food.image.thumbnails.all()\n food.image.thumbnails.small # Generates \"small\" sized thumbnail\n food.image.thumbnails.large # Generates \"large\" sized thumbnail\n food.image.thumbnails.small.url # Returns \"small\" sized thumbnail URL\n\n\n\n`django-thumbnails` comes with a few builtin image processors::\n\n # To use the following processors, put the arguments of processors in SIZES definition\n thumbnails.processors.resize(width, height)\n thumbnails.processors.rotate(degrees)\n thumbnails.processors.flip(direction)\n thumbnails.processors.crop(width, height, center)\n\n Processors are applied sequentially in the same order of definition.\n\n\nManagement Commands\n-------------------\nIf you changed your size definition and want to regenerate the thumbnails, use::\n\n python manage.py delete_thumbnails --model=app.Model --size=thumbnail_size_to_delete\n\n\nRunning Tests\n-------------\nTo run tests::\n\n `which django-admin.py` test thumbnails --settings=thumbnails.tests.settings --pythonpath=.\n\n\n=========\nChangelog\n=========\n\nVersion 0.2.1\n-------------\n* Add support for Django 1.11, 2.0 and 2.1\n\nVersion 0.2.0\n-------------\n* Improves performance on fields that have a large number of thumbnails\n* Add support for Django 1.8, 1.9 and 1.10\n\nVersion 0.1.3\n-------------\n* Fixes deprecation warning in Django 1.8\n\nVersion 0.1.2\n-------------\n* Fixes deprecation warning in Django 1.8\n\nVersion 0.1.1\n-------------\n* Use `shortuuid `_ instead of `uuid4()` to be more space efficient\n\nVersion 0.1.0\n-------------\n* First public release\n\n\nAs of February 2015, this library is suitable for production use and has been used for more than a year in `Stamps `_, an Indonesian based CRM/loyalty system.\n\n\n.. |Build Status| image:: https://travis-ci.org/ui/django-thumbnails.png?branch=master\n :target: https://travis-ci.org/ui/django-thumbnails\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ui/django-thumbnails", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-thumbnails", "package_url": "https://pypi.org/project/django-thumbnails/", "platform": "", "project_url": "https://pypi.org/project/django-thumbnails/", "project_urls": { "Homepage": "https://github.com/ui/django-thumbnails" }, "release_url": "https://pypi.org/project/django-thumbnails/0.2.1/", "requires_dist": [ "django", "da-vinci", "shortuuid" ], "requires_python": "", "summary": "A simple Django app to manage image/photo thumbnails. Supports remote/cloud storage systems like Amazon S3.", "version": "0.2.1" }, "last_serial": 4520460, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "fa7f63b9e41aee8f0897a2adde05f601", "sha256": "8dcf247f47a16869e9f65b3d4dd6b83b6b6c3fa79bde10bb3e7f8c2b80e87b6c" }, "downloads": -1, "filename": "django-thumbnails-0.1.0.tar.gz", "has_sig": false, "md5_digest": "fa7f63b9e41aee8f0897a2adde05f601", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15105, "upload_time": "2014-04-14T06:43:59", "url": "https://files.pythonhosted.org/packages/7e/18/2ddfb4202932d9ea9f09c39fc3fedbb2d16c77f08109268b242cdd3d3641/django-thumbnails-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "28a066ed5d2725d1312b5897a2be1a99", "sha256": "6839b1ce3f724e8e6cc67f5aaac9e010361d5cfc6df4eb4386a27291d7a0deb1" }, "downloads": -1, "filename": "django-thumbnails-0.1.1.tar.gz", "has_sig": false, "md5_digest": "28a066ed5d2725d1312b5897a2be1a99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14365, "upload_time": "2015-02-03T09:22:47", "url": "https://files.pythonhosted.org/packages/77/b1/36a3058fc6669b3cdfaaa1e8b2cedcc25933025d94a6f5d735bfdbfc3724/django-thumbnails-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6817cadc4e2940f5c633e1de61193001", "sha256": "a5747a57113c25fe2d852f88d96b0f967dff8a05a39d86713ebdf3195bb3d05f" }, "downloads": -1, "filename": "django_thumbnails-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "6817cadc4e2940f5c633e1de61193001", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 24649, "upload_time": "2015-06-05T05:45:00", "url": "https://files.pythonhosted.org/packages/93/c5/1aacd789816124b281505b776206e751d74ef46a9a5e93d999281e2ae5e3/django_thumbnails-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52cbd7c2f1f2c7c13f0a2686beb7f998", "sha256": "68a5bdd59a08102798896b0ad0e17420e73e23e7350198c5b7a1501404b10ded" }, "downloads": -1, "filename": "django-thumbnails-0.1.2.tar.gz", "has_sig": false, "md5_digest": "52cbd7c2f1f2c7c13f0a2686beb7f998", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14451, "upload_time": "2015-06-05T05:44:54", "url": "https://files.pythonhosted.org/packages/3d/8d/f0af08fca5c7ad58ab92d51224769d093d0bbea20db0847bcf0109f79f0f/django-thumbnails-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "85eff01294a2f1c03b4422482c6d46b3", "sha256": "aeed1d4c06ba0f5733f0f96d1381630c8a969cf9b1103a0cb4427cc9e9a949f0" }, "downloads": -1, "filename": "django_thumbnails-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "85eff01294a2f1c03b4422482c6d46b3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 24926, "upload_time": "2015-11-24T06:22:51", "url": "https://files.pythonhosted.org/packages/0b/72/dce6816e0d713c404ac5282b3a4216418226f0945418772d781ed8a7fc9e/django_thumbnails-0.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5880d85231aa82e0e94a6e39a1637cae", "sha256": "c4e67ff15cf7063e5da6e3460178a9993ca42f071e2f4b47433651f560aacded" }, "downloads": -1, "filename": "django-thumbnails-0.1.3.tar.gz", "has_sig": false, "md5_digest": "5880d85231aa82e0e94a6e39a1637cae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14764, "upload_time": "2015-11-24T06:22:45", "url": "https://files.pythonhosted.org/packages/5a/92/029272a3080761e18c78923937c7b10c0d6474e9190abe1a38e4293ec3d8/django-thumbnails-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1dd65323e112eb158753544181d124ee", "sha256": "aa12e9223890abcff65cf72b7defff822d517c2f6cef701ff866ff9182deafd3" }, "downloads": -1, "filename": "django_thumbnails-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "1dd65323e112eb158753544181d124ee", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 25211, "upload_time": "2017-01-30T09:18:23", "url": "https://files.pythonhosted.org/packages/6e/cc/6b407c31166198bf4a179991b5bf456251c237dbb47f57d75ab50372027b/django_thumbnails-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc935fe843802183caa2330fc5eef55b", "sha256": "6825b0dd7c114678f56c10be37326ff49ca277ef681f87d7a98a1fe74ef7e7af" }, "downloads": -1, "filename": "django-thumbnails-0.2.0.tar.gz", "has_sig": false, "md5_digest": "fc935fe843802183caa2330fc5eef55b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15004, "upload_time": "2017-01-30T09:18:20", "url": "https://files.pythonhosted.org/packages/95/1e/dceb0c58864adeaab918bf2810c41e3aa3ad2576565e8d35b432c1d58ab5/django-thumbnails-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "8775190c4e3a603c24fbd0118ad95163", "sha256": "8be9093e9dd44ff54e73b3e6aeb5046c9a790fc6f86729945d39b451cc707082" }, "downloads": -1, "filename": "django_thumbnails-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8775190c4e3a603c24fbd0118ad95163", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23452, "upload_time": "2018-11-23T12:35:57", "url": "https://files.pythonhosted.org/packages/59/12/0ec3f3a3ab1321b5a9f3a30db252f9bfb0ffac7952b4c01de18e9a375938/django_thumbnails-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3b4e5f7fde4894d89c8278b1b44101f", "sha256": "9122d35b3fa2868d25fe5c013c1f6681510cb97fd9712e21a44c9ff7917613e3" }, "downloads": -1, "filename": "django-thumbnails-0.2.1.tar.gz", "has_sig": false, "md5_digest": "e3b4e5f7fde4894d89c8278b1b44101f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14870, "upload_time": "2018-11-23T12:36:00", "url": "https://files.pythonhosted.org/packages/74/d1/f20b054a5792b6568d44d80231939633b0340fc95560ed72df7ab2f7f3d7/django-thumbnails-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8775190c4e3a603c24fbd0118ad95163", "sha256": "8be9093e9dd44ff54e73b3e6aeb5046c9a790fc6f86729945d39b451cc707082" }, "downloads": -1, "filename": "django_thumbnails-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8775190c4e3a603c24fbd0118ad95163", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23452, "upload_time": "2018-11-23T12:35:57", "url": "https://files.pythonhosted.org/packages/59/12/0ec3f3a3ab1321b5a9f3a30db252f9bfb0ffac7952b4c01de18e9a375938/django_thumbnails-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3b4e5f7fde4894d89c8278b1b44101f", "sha256": "9122d35b3fa2868d25fe5c013c1f6681510cb97fd9712e21a44c9ff7917613e3" }, "downloads": -1, "filename": "django-thumbnails-0.2.1.tar.gz", "has_sig": false, "md5_digest": "e3b4e5f7fde4894d89c8278b1b44101f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14870, "upload_time": "2018-11-23T12:36:00", "url": "https://files.pythonhosted.org/packages/74/d1/f20b054a5792b6568d44d80231939633b0340fc95560ed72df7ab2f7f3d7/django-thumbnails-0.2.1.tar.gz" } ] }