Skip to main content

PyClean Image Crop Uploader (pycicu) provides AJAX file upload and image CROP functionalitiesusing Pyramid. It uses Modal from twitter-bootstrap. This is a fork of clean-image-crop-uploader.

Project description

#. TODO: Adjust this README to the new project. Right now it demands a lot of packages, in the future we intend to reduce them to a minimum.

py-clean-image-crop-uploader (pyCICU)
.. image::
.. image::
.. image::

``pycicu`` is a tool to upload an image via Ajax and crop it using `Jcrop
<>`_. It provides a simple workflow: first one, using modal,
(by `twitter bootstrap <>`_) the image can be uploaded and cropped.
Second one, you can see the image cropping preview in the form and finally submit the result.

``pycicu`` is perfect when you have to upload images and it's necessary to have a specific portion of image.
It'll be easy to configure and to use.
You can use different configurations, with fixed aspect ratio or minimal image size.

It works with jQuery = 1.8.3 and twitter bootstrap.


#. Modal window with upload button:

.. image::

#. Modal window with crop area:

.. image::

#. Form with preview

.. image::


#. Install using pip. For example::

pip install pycicu

* jQuery = 1.8.3
* Twitter-Bootstrap

* Pillow >= 1.5
* deform >= 2.0a2
* colander >= 1.0b1
* pyramid_chameleon >= 0.1
* SQLAlchemy >= 0.8.3

#. Add into ::

(r'^ajax-upload/', include('startproject.cicu.urls'))

#. Create your model-form and set CicuUploaderInput widget to your imageField ::

from cicu.widgets import CicuUploaderInput

class yourCrop(forms.ModelForm):
class Meta:
model = yourModel
cicuOptions = {
'ratioWidth': '600', #fix-width ratio, default 0
'ratioHeight':'400', #fix-height ratio , default 0
'sizeWarning': 'False', #if True the crop selection have to respect minimal ratio size defined above. Default 'False'
widgets = {
'image': CicuUploaderInput(options=cicuOptions)

#. Download `twitter bootstrap <>`_ to your static file folder.

#. Add in your form template links to jquery, bootstrap,

<script src=""></script>
<link href="{{ STATIC_URL }}css/bootstrap.css" rel="stylesheet" type="text/css"/>
<script src="{{ STATIC_URL }}js/bootstrap.js"></script>
{{ }}


Run the example

To run the example inside this package follow these commands::

> cd ./example/
> python syncdb
> python migrate # only if you use South!!!
> python collectstatic
> python runserver domain:8000

Go to examples :

#. Free crop : <http://domain:8000/cicu-freecrop/>

#. Fixed aspect ratio: <http://domain:8000/cicu-fixedratio/>

#. Fixed aspect ratio with minimal size: <http://domain:8000/cicu-warningsize/>

Project details

Download files

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

Files for pycicu, version 0.1.6
Filename, size File type Python version Upload date Hashes
Filename, size pycicu-0.1.6.tar.gz (39.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page