ImgPy
Image processing library for Python with animated GIFs support - proxy wrapper around Pillow library with simple usable interface and access to each frame.
Features
Attributes:
- info
- exif - dict with EXIF tags and GPS dict with GPS tags if presented
- format
- size
- width
- height
- mode
- mode_desc - image mode description
- frame_count - frame count
- animated - flag, which shows if image is animated
- frames - frame list
Methods:
- convert
- crop
- filter
- paste
- resize
- rotate
- thumbnail
- transform
- transpose
- load - gets called when you access frames attribute for the first time or call any processing or save method, call this method explicitly to load all or limited number of frames (first n frames or random n frames without reordering)
- save - save image
- close - close image
Requirements
- Python 3.5+
- Pillow 4.1.1+
Setup
python-3.6 -m venv .env
source .env/bin/activate
pip install imgpy
Usage
from imgpy import Img
# Crop image
with Img(fp='test.gif') as im:
im.crop(box=(10, 10, 110, 110))
im.save(fp='crop.gif')
# Create thumbnail image
with Img(fp='test.gif') as im:
im.thumbnail(size=(100, 100))
im.save(fp='thumb.gif')
# Save 10 random GIF frames
with Img(fp='test.gif') as im:
im.load(limit=10, first=False)
im.save(fp='random.gif')
Tests
Run tests: py.test