Skip to main content

A highly opinionated image processor for the commandline.

Project description

Image Wrench

https://img.shields.io/pypi/v/imgwrench.svg https://img.shields.io/travis/luphord/imgwrench.svg Documentation Status

A highly opinionated image processor for the commandline. Multiple subcommands can be executed sequentially to form a processing pipeline.

Usage

Usage: imgwrench [OPTIONS] COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]...

A highly opinionated image processor for the commandline. Multiple
subcommands can be executed sequentially to form a processing pipeline.

Options:
-i, --image-list FILENAME  File containing paths to images for processing,
                        defaults to stdin
-p, --prefix TEXT          prefix for all output filenames before numbering
                        [default: img_]
-d, --digits INTEGER       number of digits for file numbering  [default: 4]
-c, --increment INTEGER    increment for file numbering  [default: 1]
-k, --keep-names           keep original file names instead of numbering
                        [default: False]
-f, --force-overwrite      force overwriting output image file if it exists
                        [default: False]
-o, --outdir DIRECTORY     output directory  [default: .]
-q, --quality INTEGER      quality of the output images, integer 0 - 100
                        [default: 88]
-e, --preserve-exif        preserve image exif headers if available
                        [default: False]
-j, --jpg / --png          save output images in JPEG format (otherwise PNG)
                        [default: True]
--help                     Show this message and exit.

Commands:
blackwhite  Convert color images to black and white.
colorfix    Fix colors by stretching channel histograms to full range.
crop        Crop images to the given aspect ratio.
dither      Apply black-white dithering to images.
filmstrip   Stack all images horizontally, creating a filmstrip.
frame       Put a monocolor frame around images.
framecrop   Crop and frame an image to a target aspect ratio.
resize      Resize images to a maximum side length preserving aspect...
save        No-op to enable saving of images without any processing.
stack       Stacks pairs of images vertically, empty space in the middle.

Features

  • Subcommands can be executed sequentially to form a pipeline
  • Command blackwhite for converting images to black and white
  • Command colorfix for fixing the colors of aged photographs
  • Command crop for cropping images to give aspect ratio
  • Command dither for converting images to black and white and dithering
  • Command filmstrip to stack images horizontally forming a filmstrip
  • Command frame to put a monocolor frame around images
  • Command framecrop top frame and crop an image to a target aspect ratio
  • Command resize for resizing images
  • Command save for no processing, but saving images with the given parameters
  • Command stack for vertically stacking images

Pipelines

imgwrench subcommands can be combined into pipelines. This saves you from generating intermediate files cluttering your filesystem and reducing the quality of the final results. For example, if you would like to convert all images in the current directory to black and white, put a white frame around them and have them cut to an aspect ratio of 3:2 (for standard format printing), you would execute the following command:

ls *.JPG | \
imgwrench -o out -q 95 -p oldschool_img_ \
        blackwhite \
        framecrop -a 3:2 -w 0.03 -c white

Please refer to the detailed subcommand documentation for the individual parameters.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.8.1 (2020-01-12)

  • fix crash when orientation is missing in exif headers

0.8.0 (2019-07-10)

  • dither subcommand for dithering
  • filmstrip subcommand to stack images horizontally
  • images can be saved in PNG format using –png CLI flag

0.7.1 (2019-05-16)

  • fix development status

0.7.0 (2019-05-16)

  • option for preserving exif image metadata
  • fix error when running with -k/–keep-names
  • status progress to Alpha

0.6.0 (2019-03-14)

  • framecrop subcommand to crop and frame an image to a target aspect ratio incl. tests and docs
  • breaking change: moved command modules to commands package
  • introduced ImageInfo as a container for additional meta information in the pipeline
  • increased test coverage
  • more documentation

0.5.2 (2019-03-10)

  • use a custom parameter type for colors

0.5.1 (2019-03-09)

  • changed default frame width to 0.025
  • usage doc for frame subcommand
  • consistent alphabetic sorting of subcommands
  • use a custom parameter type for ratios

0.5.0 (2019-03-07)

  • blackwhite subcommand to convert color images to black and white; incl. doc
  • frame subcommand to put a monocolor frame around images; incl. tests

0.4.0 (2019-02-26)

  • convert RGBA mode PNG images to RGB (to enable saving as JPG)
  • crop subcommand to crop images to a specified aspect ratio
  • documentation for colorfix and crop

0.3.0 (2019-02-17)

  • -d/–digits option to specify number of digits in file names
  • -c/–increment option to define increment for file numbering
  • create non-existing output folder instead of complaining

0.2.0 (2019-01-30)

  • no-op save command for only saving images
  • raise exception if output image already exists
  • -f / –force-overwrite flag to enable overwriting output
  • tests for cli, pipeline and resize

0.1.1 (2019-01-29)

  • Fix __main__ module

0.1.0 (2019-01-29)

  • First release on PyPI.

Project details


Download files

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

Files for imgwrench, version 0.8.1
Filename, size File type Python version Upload date Hashes
Filename, size imgwrench-0.8.1-py2.py3-none-any.whl (63.4 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes
Filename, size imgwrench-0.8.1.tar.gz (1.1 MB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page