Abraia Python SDK
Project description
Abraia API client
Python client for the Abraia API. Batch optimize images for web with no quality damage based on perception-driven technology.
- Optimal image compression with our perceptual adjustment to preserve the quality and maximize the compression.
- Smart crop and resize images with our saliency and aesthetic based model which balances between content and aesthetics.
Automatically crop, resize, and compress images for web.
Installation
The Abraia python client and CLI works in Windows, Mac, and Linux with Python 2 and 3 (python>=2.6.5), and can be installed and upgraded with a simple command:
python -m pip install -U abraia
Moreover, you have to configure your ABRAIA_KEY as an environment variable:
export ABRAIA_KEY=api_key
On Windows you need to use set instead of export:
set ABRAIA_KEY=api_key
NOTE: To persist the configuration use your system options to set your ABRAIA_KEY environment variable and avoid to run the previous command every time you start a terminal/console session.
Usage
The Abraia fluent API is the easiest way to resize and compress images with Python. You just need to define the source of the image, the transformation operation, and the sink for the resultant image.
For instance, to optimize a batch of JPEG images limiting the maximum size to 2000 pixels width:
from glob import glob
from abraia import Abraia
abraia = Abraia()
paths = glob('images/*.jpg')
for path in paths:
abraia.from_file(path).resize(width=2000).to_file(path+'o')
Compress images
To compress an image you just need to specify the input and output paths for the image:
abraia.from_file('images/lion.jpg').to_file('images/lion_o.jpg')
abraia.from_file('images/jaguar.png').to_file('images/jaguar_o.png')
You can also compress and image directly from an url:
abraia.from_url('https://api.abraia.me/files/demo/birds.jpg').to_file('images/birds_o.jpg')
Resize images
To resize an image you just need to specify the width
or the height
of the image:
abraia.from_file('images/lion.jpg').resize(width=500).to_file('images/lion_500.jpg')
You can also automatically crop and resize and image to change the aspect ratio specifying both width
and height
size parameters:
abraia.from_file('images/lion.jpg').resize(width=333, height=333).to_file('images/lion_333x333.jpg')
Convert images
To convert images to a web format (JPEG, PNG, WebP, GIF) or between these formats you just need to change the filename extension for the destination file:
abraia.from_file('images/jaguar.png').to_file('jaguar.webp')
abraia.from_file('images/jaguar.png').to_file('jaguar.jpg')
Optimized PNG (16.1KB) vs optimized WebP (6.5KB) vs optimized JPEG (14.4KB)
Watermark images
Using templates images can be easily edited and consistently branded. You just need to create a template in the web editor to watermark your images.
abraia.from_file('images/lion.jpg').process({'action': 'test.atn'}).resize(width=333).to_file('images/lion_brand.jpg')
As a result you get a perfectly branded and optimized image ready to be used on your website, ecommerce, marketplace, or social media.
License
This software is licensed under the MIT License. View the license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file abraia-0.6.6.tar.gz
.
File metadata
- Download URL: abraia-0.6.6.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c102499587b1011d874c1185541ffba235b816473133b33260ded749d25cd4dd |
|
MD5 | 5ec107f97753c7f95c50147901482107 |
|
BLAKE2b-256 | 373b1451973d86dc5f932560025f5845ce5c64fe8bae6a479eff7217b8bf8547 |
File details
Details for the file abraia-0.6.6-py2.py3-none-any.whl
.
File metadata
- Download URL: abraia-0.6.6-py2.py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a08e0e9b544124734eaf00031e4416dfc062fb83e298476ff7d6512f633c4bc9 |
|
MD5 | 2818f16842135d67d510894cac0f1a6a |
|
BLAKE2b-256 | 1d60a99266b0ff2a5ef67e4a00c95b4b54baaed7347aff3ce890f2ce5fb7fff8 |