Skip to content

A Python package providing low-level tools for working with digital media programmatically.

License

Notifications You must be signed in to change notification settings

henryrobbins/dmtools

Repository files navigation

dmtools

PyPI pyversions CircleCI Documentation Status codecov

dmtools (Digital Media Tools) is a Python package providing low-level tools for working with digital media programmatically. It supports the PNG and Netpbm image file formats as well as the MPEG-4 and WAV video and audio file formats respectively.

The transform module provides image transformation tools such as rescale (based on the ImageMagick implementation) and composite (based on the Cairo implementation). The adjustments module provides a curves tool and the colorspace module provides colorspace conversion tools. The arrange module provides image layout tools. Lastly, the animation and sound modules provide tools for working with video and sound respectively. For more details, see the Documentation.

Installations

The quickest way to get started is with a pip install.

pip install dmtools

The animation module requires ffmpeg which you can install with a package manager like Homebrew. Note that this may take some time to install.

brew install ffmpeg

For in-depth installation instructions see Installation.

Usage

The usage example below illustrates how an image can be read, manipulated, and exported using dmtools. It features a change of color space, inversion of the red channel, and blur. For more usage examples, see the Introduction to dmtools in Tutorials. Both the input image checks_5.png and output image result.png can be found in the dmtools GitHub repository.

import dmtools
from dmtools import colorspace, transform, adjustments, arrange

image = dmtools.read("checks_5.png")
image = colorspace.gray_to_RGB(image)
image = adjustments.apply_curve(image, lambda x: 1 - x, 0)
image = transform.blur(image, 5)
image = arrange.image_grid([image]*2, 2, 1, 15, color=1)

dmtools.write_png(image, "result.png")

checks_5.png

checks_5.png

result.png

result.png

License

Licensed under the MIT License