forked from SmileyChris/easy-thumbnails
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
99 lines (65 loc) · 2.94 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
===============
Easy Thumbnails
===============
The powerful, yet easy to implement thumbnailing application for Django.
To install this application into your project, just add it to your
``INSTALLED_APPS`` setting (and run ``manage.py syncdb``)::
INSTALLED_APPS = (
...
'easy_thumbnails',
)
Template usage
==============
To generate thumbnails in your template, use the ``{% thumbnail %}`` tag. To
make this tag available for use in your template, use::
{% load thumbnail %}
Basic tag Syntax::
{% thumbnail [source] [size] [options] %}
*source* must be a ``File`` object, usually an Image/FileField of a model
instance.
*size* can either be:
* the size in the format ``[width]x[height]`` (for example,
``{% thumbnail person.photo 100x50 %}``) or
* a variable containing a valid size (i.e. either a string in the
``[width]x[height]`` format or a tuple containing two integers):
``{% thumbnail person.photo size_var %}``.
*options* are a space separated list of options which are used when processing
the image to a thumbnail such as ``sharpen``, ``crop`` and ``quality=90``.
Model usage
===========
You can use the ``ThumbnailerField`` or ``ThumbnailerImageField`` fields (based
on ``FileField`` and ``ImageField``, respectively) for easier access to
retrieve (or generate) thumbnail images.
By passing a ``resize_source`` argument to the ``ThumbnailerImageField``, you
can resize the source image before it is saved::
class Profile(models.Model):
user = models.ForeignKey('auth.User')
avatar = ThumbnailerImageField(
upload_to='avatars',
resize_source=dict(size=(50, 50), crop='smart'),
)
Lower level usage
=================
Thumbnails are generated with a ``Thumbnailer`` instance. For example::
from easy_thumbnails.files import get_thumbnailer
def square_thumbnail(source):
thumbnail_options = dict(size=(100, 100), crop=True, bw=True)
return get_thumbnailer(source).get_thumbnail(thumbnail_options)
By default, ``get_thumbnail`` saves the file (using file storage). The source
file used to instanciate the ``Thumbnailer`` must be one of the following:
* ``Thumbnailer`` instance
* ``FieldFile`` instance (i.e. a model instance file/image field
property)
* ``File`` or ``Storage`` instance, and for both of these cases the
``relative_name`` argument must also be provided
* A string, which will be used as the relative name (the source will be
set to the default storage)
The ``ThumbnailFile`` object provided makes this easy::
from easy_thumbnails import ThumbnailFile
# For an existing file in storage:
source = ThumbnailFile('animals/aarvark.jpg')
square_thumbnail(source)
# For a new file:
picture = open('/home/zookeeper/pictures/my_anteater.jpg')
source = ThumbnailFile('animals/anteater.jpg', file=picture)
square_thumbnail(source)