Skip to main content

Abraia Python SDK

Project description

PyPI Build Status Coverage Status Analytics

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')

Image compressed from url

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')

Image lion resized

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')

Image lion smart cropped

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')

PNG Jaguar optimized WEBP Jaguar optimized JPEG Jaguar optimized

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')

Branded lion

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

abraia-0.6.5.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

abraia-0.6.5-py2.py3-none-any.whl (9.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file abraia-0.6.5.tar.gz.

File metadata

  • Download URL: abraia-0.6.5.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

Hashes for abraia-0.6.5.tar.gz
Algorithm Hash digest
SHA256 ca348b512a68adfc16e9a3aff69c5cc7d365332663e46febe94ef345b3b68b0b
MD5 975518f2e7561f0421602e47a8ca25d3
BLAKE2b-256 862230434cc95712fbf2e1769d8445a2b05d28fb6e416042cb9ac20c316a1966

See more details on using hashes here.

File details

Details for the file abraia-0.6.5-py2.py3-none-any.whl.

File metadata

  • Download URL: abraia-0.6.5-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

Hashes for abraia-0.6.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 90de1c43773e714242368137b0bfa885610e1a9e60e356a06b46d3cf1fbd5c24
MD5 f8c1a4c10a00e95b249a01189f37f3e2
BLAKE2b-256 d724c79a33a04173fb02d43995b782dfd6ea9d98f7ee6aeac79feba5ce2b671d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page