Skip to content

Automatically compress images (.jpg and .png) using tinypng.com.

Notifications You must be signed in to change notification settings

KalobTaulien/wagtail_tinify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wagtail TinyPNG

A custom Wagtail Image Model and function for compressing images on upload through the admin with TinyPNG.

The benefit to using this package is your source image is minified without losing quality. And all of your wagtail image renditions will be smaller because of this as well.

Installation

  1. pip install wagtail-tinify
  2. Add wagtail_tinify to your INSTALLED_APPS
  3. Run python3 manage.py migrate wagtail_tinify
  4. In your settings.py file, add WAGTAILIMAGES_IMAGE_MODEL = 'wagtail_tinify.CustomImage'
  5. Add yout TinyPNG Developer API Key to settings.py with TINIFY_API_KEY = "your_api_key_here"
  6. Overwrite the wagtail multiple image add function in your urls.
  • from wagtail_tinify.views import add
  • Put this above your wagtailadmin_urls in urls.py: url(r"^admin/images/multiple/add/", add)
  1. Test by uploading a file in the Wagtail admin. It will take a bit longer than usual because it will run every image through TinyPNG.

Callback support

To add a callback function after the image has been uploaded, set the WAGTAIL_COMPRESS_CALLBACK setting. This is an optional setting.

# settings.py
WAGTAIL_COMPRESS_CALLBACK = 'your.app.utils.myfunc'
# your.app.utils.py
def myfunc(image, image_tinified=False):
    if image_tinified:
        # If the image was compressed.
        pass
    else:
        # Image was not compressed.
        pass
    # Example: print the image filename.
    print(image.filename)

Todos

  • Add proper TinyPNG exception handling
  • Check for jpg/png files explicitly. Don't bother sending data to TinyPNG if its a gif.
  • Add other compression services types

About

Automatically compress images (.jpg and .png) using tinypng.com.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages