Skip to main content

A simple Django app to manage image/photo thumbnails. Supports remote/cloud storage systems like Amazon S3.

Project description

# This is a work in progress and is not ready for use

Build Status

Design:

  • Uses Django Storage API

  • Uses flexible meta data store

Usage

settings.py:

THUMBNAILS = {
    'METADATA': {
        'BACKEND': 'thumbnails.backends.metadata.DatabaseBackend', # Redis backend also supported
    },
    'STORAGE': {
        'BACKEND': 'django.core.files.storage.FileSystemStorage',
        # You can also use Amazon S3 or any other Django storage backends
    }
    'SIZES': {
        'small': {
            'PROCESSORS': [
                {'PATH': 'thumbnails.processors.resize', 'width': 10, 'height': 10},
                {'PATH': 'thumbnails.processors.crop', 'width': 80, 'height': 80}
            ],
            'POST_PROCESSORS': [
                {
                    'processor': 'thumbnails.post_processors.optimize',
                    'png_command': 'optipng -force -o7 "%(filename)s"',
                    'jpg_command': 'jpegoptim -f --strip-all "%(filename)s"',
                },
            ],
        },
        'large': {
            'PROCESSORS': [
                {'PATH': 'thumbnails.processors.resize', 'width': 20, 'height': 20},
                {'PATH': 'thumbnails.processors.flip', 'direction': 'horizontal'}
            ],
        }
    }
}

In python:

import thumbnails

class Food(models.Model):
    image = thumbnails.Field()


food = Food.objects.latest('id')
food.image.thumbnails.all()
food.image.thumbnails.small  # Generates "small" sized thumbnail
food.image.thumbnails.large  # Generates "large" sized thumbnail
food.image.thumbnails.small.url  # Returns "small" sized thumbnail URL

Builtin processors:

# To use the following processors, put the arguments of processors in SIZES definition
thumbnails.processors.resize(width, height)
thumbnails.processors.rotate(degrees)
thumbnails.processors.flip(direction)
thumbnails.processors.crop(width, height, center)

Processors are applied sequentially in the same order of definition.

Management Commands

If you changed your size definition and want to regenerate the thumbnails, use:

python manage.py delete_thumbnails --model=app.Model --size=thumbnail_size_to_delete

Running Tests

which django-admin.py test thumbnails –settings=thumbnails.tests.settings –pythonpath=.

Changelog

Version 0.1.0

  • First public release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-thumbnails-0.1.0.tar.gz (15.1 kB view details)

Uploaded Source

File details

Details for the file django-thumbnails-0.1.0.tar.gz.

File metadata

File hashes

Hashes for django-thumbnails-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8dcf247f47a16869e9f65b3d4dd6b83b6b6c3fa79bde10bb3e7f8c2b80e87b6c
MD5 fa7f63b9e41aee8f0897a2adde05f601
BLAKE2b-256 7e182ddfb4202932d9ea9f09c39fc3fedbb2d16c77f08109268b242cdd3d3641

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page