A simple Django app to crop and resize images
Project description
Installation
run pip install django-html5croppingtools
Configure settings.py
Add html5croppingtools to INSTALLED_APPS
manage.py
run manage.py collectstatic
Examples
Admin example without saving original image
#models.py
class MyModel(models.Model):
...
image = models.ImageField(upload_to='<upload path>')
...
#admin.py
....
from html5croppingtools.fields import CropImageField
from html5croppingtools.forms import CropImageFormMixin
....
class MyModelForm(CropImageFormMixin, ModelForm):
"""
:param max_size maximum size of image width or height(depends on which is greater) in pixels
:param width_ratio and height_ratio using this two parameters code calculates ratio
between width and height of image and helps when selecting cropping area in admin by fixing ratio between sides
"""
image = CropImageField(max_size=900, width_ratio=500,height_ratio=300)
....
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
form = MyModel
....
Admin example with saving original image
...
class MyModel(models.Model):
...
image = models.ImageField(upload_to='<upload path>')
original_image = models.ImageField(upload_to='<upload path>')
...
...
class MyModelForm(CropImageFormMixin, ModelForm):
"""
:param original_field name of corresponding model's field where you want to save original image
"""
image = CropImageField(
original_field='original_image', max_size=900,
width_ratio=500, height_ratio=300,
)
....
On the fly cropping
Add html5croppingtools.imagecrop.ImageCropMiddleware to MIDDLEWARE_CLASSES
after adding html5croppingtools.imagecrop.ImageCropMiddleware to MIDDLEWARE_CLASSES you can add "quality=<int>&dimensions=<int x0 >x<int y0 >x<int x1 >x<int y1>" this parameters to GET querystring and middleware will serve corresponding image cropped and resized
Middleware working steps:
If “quality” is supplied, image will be resized
If crop “dimensions” are supplied, image will be cropped
return image
Note: “dimensions” and “quality” parameters are optional
Example
/media/image/my_image_guid.jpeg?quality=1200&dimensions=300x200x900x800
middleware will resize image proportionally making It’s bigger side equal to 1200 pixels
after shrinking it will crop x1=300 y1=200 x2=900 y2=800 rectangle
return image
Template example
{% load croppingtools_extra %}
<img src="{% html5crop MyModel.image dimensions='100x100x300x300' quality=500 %}">
takes “ImageFiled”, “dimensions” and “quality” parameters and returns url “/media/image/my_image_guid.jpeg?quality=500&dimensions=100x100x300x300” after which middleware will serve cropped and resized image
Note: “dimensions” and “quality” parameters are optional
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
Built Distribution
File details
Details for the file django-html5croppingtools-0.1.3.tar.gz
.
File metadata
- Download URL: django-html5croppingtools-0.1.3.tar.gz
- Upload date:
- Size: 67.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b91fdfc8b9bab4b6c73dd451361da6f104424aa0fbeb9e4e767a648daccb1ea |
|
MD5 | 6b73ea1e81d58d0df0a3f429187a381d |
|
BLAKE2b-256 | 16d560711e09d27f6283cec63c48c32c44b3018346e03f0471e2d9c2841824e9 |
File details
Details for the file django_html5croppingtools-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: django_html5croppingtools-0.1.3-py3-none-any.whl
- Upload date:
- Size: 74.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 817cc0a6054e0b7168fda3757bd69a49383ab2125766079229e49f42e34a7265 |
|
MD5 | c4313a267efb3e049b3491a6b41f2ef2 |
|
BLAKE2b-256 | 1206b304387ef8c73f06de6ea032d23cabcead755f2378d9a6032d61966e5446 |