django-image-beskärning är en Django app för beskärning uppladdade bilder via Django s admin backend använder imgareaselect. & Nbsp; Det håller den ursprungliga bilden intakt, bara beskära när bilden visas. Stora bilder presenteras i litet format, så även mycket stora bilder kan enkelt beskäras.
django-image-beskärning är perfekt när du behöver bilder med en viss storlek för dina mallar men vill att dina användare eller redaktörer att ladda upp bilder av någon dimension. Den presenterar ett urval med en fast bildförhållande så att användarna inte kan bryta layouten med konstigt stora bilder.
Det ger de nödvändiga fält, widgets och en (easy_thumbnails) thumbnail-processor för att visa den beskurna bilden i dina mallar. Fungerar även med olika typer FeinCMS innehåll!
Installation
1. Installera django-image-beskärning använder pip. Till exempel:
& Nbsp; pip installera django-image-beskärning
2. Lägg easy_thumbnails och image_cropping till din INSTALLED_APPS. image_cropping krävs endast om du använder Django 1.3 och contrib.staticfiles
3. Justera miniatyr processorer för easy_thumbnails i ditt settings.py:
& Nbsp; från easy_thumbnails importera defaults
& Nbsp; THUMBNAIL_PROCESSORS = (
& Nbsp; 'image_cropping.thumbnail_processors.crop_corners ",
& Nbsp;) + defaults.PROCESSORS
4. Distribuera nödvändiga statiska filer:
& Nbsp; Om du använder Django 1.3 och contrib.staticfiles nödvändiga statiska filer ska hämtas automatiskt. I alla andra fall måste man kopiera eller Symlink de statiska filer. Beroende på din setup kommandot ska se liknande till detta:
& Nbsp; ln -s ~ / .virtualenvs / yourenv / src / django-image-beskärning / image_cropping / static / image_cropping /
Konfiguration
För att göra en vanlig ImageField croppable, vrid den helt enkelt till en ImageCropField. Tillsätt sedan en ImageRatioField, som kommer att innehålla gränserna för den beskurna bilden. Den ImageRatioField förväntar namnet på den tillhörande ImageCropField som första argumentet och storleken på den slutliga bilden som ska visas som det andra argumentet.
Storleken förs in som en sträng och definierar bildformat för urvalet samt minsta storlek för den slutliga bilden. Om användaren försöker beskära en bild som är mindre än detta minimum, valet låst.
1. Modell fält och alternativ:
& Nbsp; från image_cropping.fields importera ImageRatioField, ImageCropField
& Nbsp; image = ImageCropField (tom = Sant, null = Sant, upload_to = 'uploaded_images')
& Nbsp; # storleken är "bredd x höjd"
& Nbsp; beskärning = ImageRatioField ("image", "430x360")
2. Om din setup är korrekt bör du automatiskt se den förbättrade bild widget som ger ett markerat område för bilden i admin backend.
3. Exempel på användning av miniatyr processor:
& Nbsp; {% miniatyr yourmodel.image 430x360 box = yourmodel.cropping gröda detalj%}
4. Dessutom kan du definiera den maximala storleken på förhandsgranskningsminiatyr i ditt settings.py:
& Nbsp; # storleken är "bredd x höjd"
& Nbsp; IMAGE_CROPPING_THUMB_SIZE = (300, 300)
Extra
Om du behöver samma bild i flera format, helt enkelt ange en annan ImageRatioField. Detta gör att bilden som ska beskäras två gånger:
från image_cropping.fields importera ImageRatioField, ImageCropField
image = ImageCropField (tom = Sant, null = Sant, upload_to = 'uploaded_images ")
# Storlek är "bredd x höjd"
list_page_cropping = ImageRatioField ("image", "200x100")
detail_page_cropping = ImageRatioField ("image", "430x360")
I dina mallar, helt enkelt använda motsvarande förhållandet fältet:
{% Miniatyr yourmodel.image 200x100 box = yourmodel.list_page_cropping gröda detalj%}
Krav :
- Python
- Django
Kommentarer hittades inte