thumbor is a smart imaging service. It enables on-demand crop, resizing and flipping of images.
It also features a VERY smart detection of important points in the image for better cropping and resizing, using state-of-the-art face and feature detection algorithms (more on that in Detection Algorithms).
Using thumbor is very easy (after it is running). All you have to do is access it using an path for an AWS image, like this:
http://<thumbor-server>/300x200/smart/<bucket-name>/<file-key>
That URL would show an image of the asset in 300x200 using smart crop.
There are several other options to the image URL configuration. You can check them in the Usage page.
For more information check thumbor's documentation.
You can see thumbor in action at http://thumborize.me/
Our custom AWS plugin relies on authentication handled by botocore, see Boto3 documentation
If running on heroku, simply add credentials
heroku config:set AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=yyy
openCV (FHopenCV 3.0.1)
python 2.7.x is required to run Thumbor
a compile version of openCV with pyhton handlers
If developing it is suggested that thumbor be run in a virtualenv to manage the pip dependencies
Production install: python setup.py install
Development install python setup.py develop
FH-Thumbor provides a restful endpoint to upload images to an AWS bucket.
Images can be uploading by making a POST request to http://<thumbor-server>/aws/upload
with this payload:
HEADERS:
ApplicationID
-- The group/application ID of the Brand-App source
BODY:
media
-- File pointing to the image that will be uploaded