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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

62e9cd5 · Jul 17, 2024
Oct 4, 2021
Dec 21, 2021
Dec 18, 2021
Sep 10, 2021
Sep 24, 2021
Jun 13, 2022
Jul 17, 2024
Aug 25, 2021
Sep 18, 2021
Nov 12, 2021
Jul 17, 2024
Dec 18, 2021
Jul 17, 2024
Dec 18, 2021
Dec 20, 2021
Sep 24, 2021
Sep 24, 2021

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