Skip to main content

Fast image compression for large number of images with Ray library

Project description

Ray-Image

🚀 Fast image compression for large number of images with Ray library.

Supported Python versions PEP8 Poetry-build

Requirements

To install ray, run*:

pip install ray

*For Apple Silicon (M1), follow the instructions here to install ray.

⬇️ Installation

pip install rayim

⌨️ Usage

usage: rayim [-h] [-o OUTPUT_DIR] [-q QUALITY] [--overwrite] [-n] [-j]
             [--replicate-dir-tree] [-s SIZE SIZE] [-d DIV_BY] [-S] [-O]
             path [path ...]

positional arguments:
  path                  Path to a single file/directory or multiple
                        files/directories

options:
  -h, --help            show this help message and exit
  -o OUTPUT_DIR, --output-dir OUTPUT_DIR
                        Output directory (default: next to original file)
  -q QUALITY, --quality QUALITY
                        Output image quality (JPEG only; default: 70)
  --overwrite           Overwrite the original image
  -n, --no-subsampling  Turn off subsampling and retain the original image
                        setting (JPEG only)
  -j, --to-jpeg         Convert the image(s) to .JPEG
  --replicate-dir-tree  Replicate the source directory tree in the output
  -s SIZE SIZE, --size SIZE SIZE
                        Resize the image to WIDTH HEIGHT
  -d DIV_BY, --div-by DIV_BY
                        Divide the image size (WxH) by a factor of n
  -S, --silent          Silent mode
  -O, --optimize        Apply default optimization on the image(s)
  -k, --keep-date       Keep the original modification date

📕 Examples

  • Running on a single file:
rayim foo.jpg
# 🚀 foo.jpg: 1157. kB ==> 619.9 kB (-46.4%) | 0.07s
  • Running on a folder foo and writing the output to compressed
rayim foo/ -o compressed
# (compress_many pid=612778) 🚀 foo.jpg: 988.9 kB ==> 544.8 kB (-44.9%) | 0.08s
# (compress_many pid=612828) 🚀 bar.jpg: 983.7 kB ==> 541.2 kB (-44.9%) | 0.07s
# (compress_many pid=612826) 🚀 foobar.jpg: 1001. kB ==> 550.7 kB (-44.9%) | 0.07s
# (compress_many pid=612786) 🚀 barfoo.jpg: 1001. kB ==> 551.9 kB (-44.8%) | 0.08s
# ...

# Total:
#    Before: 1091.32 MB
#    After: 599.46 MB (-45.0%)

Speed comparison

Test 1 (on Apple Silicon M1, 8-cores)

Method Number of files Speed
Regular compression 1,000 60.090s
rayim 1,000 26.937s (55.17% faster)
Total:
    Before: 1091.32 MB
    After: 599.46 MB (-45.0%)

Test 2 (on Intel @ 2.299GHz, 32-cores)

Method Number of files Speed
Regular compression 6,000 7m42.919s
rayim 6,000 5m15.423s (31.96% faster)
Total:
    Before: 6040.59 MB
    After: 3321.70 MB (-45.0%)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rayim-1.8.2.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

rayim-1.8.2-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file rayim-1.8.2.tar.gz.

File metadata

  • Download URL: rayim-1.8.2.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.10.8 Darwin/23.1.0

File hashes

Hashes for rayim-1.8.2.tar.gz
Algorithm Hash digest
SHA256 074e3c12a023cab303728e892ca5535acb162493bd62af7eaac40b70b7658363
MD5 1859855164bfd03a84c9926bf55596b1
BLAKE2b-256 a9417869f0cb3bbc9e53403bb7c2af488a24ac9116abea821379a9e4db3e22ea

See more details on using hashes here.

File details

Details for the file rayim-1.8.2-py3-none-any.whl.

File metadata

  • Download URL: rayim-1.8.2-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.10.8 Darwin/23.1.0

File hashes

Hashes for rayim-1.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8199cd56d8963e8543451f4a87fa6147c81a8506c2d166c8611249536c96991d
MD5 7b268a2f10e69680a0b4edcf5ff63460
BLAKE2b-256 0fd4221f3463abaac263859e99b37e6fb7ef3cb2ba898e80d88e4d12c4c954bd

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