{"name":"@deckyard/magick","description":"Image processing through the ImageMagick 7 command line: resize, crop, convert, annotate, compare, with safe defaults","versions":{"0.1.0":{"version":"0.1.0","kind":"git","url":"https://github.com/deckyard/deck-magick.git","ref":"0.1.0","commit":"03ee1d19fdf0a741c4603783d2aaccd500760839","checksum":"","yanked":false,"license":"LGPL-3.0-only","requires":{},"engines":{"jennifer":"\u003e=0.25.0"},"capabilities":["exec"],"keywords":["imagemagick","image","thumbnail","resize","convert"],"description":"Image processing through the ImageMagick 7 command line: resize, crop, convert, annotate, compare, with safe defaults","publishedAt":"1793743707","repoId":1444836867,"repoOwnerId":346943577,"repoOwner":"deckyard"}},"readme":"# @deckyard/magick\n\n[![test](https://github.com/deckyard/deck-magick/actions/workflows/test.yml/badge.svg)](https://github.com/deckyard/deck-magick/actions/workflows/test.yml)\n[![Documentation](https://img.shields.io/badge/docs-github%20pages-blue)](https://deckyard.github.io/deck-magick/)\n[![release](https://img.shields.io/github/v/release/deckyard/deck-magick)](https://github.com/deckyard/deck-magick/releases/latest)\n\nImage processing for [Jennifer](https://jennifer-lang.dev/) through the\n[ImageMagick 7](https://imagemagick.org/) command line: resize, crop,\nthumbnail, rotate, strip metadata, annotate, watermark, convert between\nformats, identify, compare and montage. Built for images and file names you\ndo not control: no shell, formats pinned and allow-listed, file names and\ntext checked, memory, size and time limits on every command.\n\n**[Documentation](https://deckyard.github.io/deck-magick/)**\n\n## Install\n\n```sh\njvc add @deckyard/magick\n```\n\nOr unpack `src/` from a release archive (`deckyard-magick-\u003cversion\u003e.tar.gz`)\ninto `vendor/deckyard/magick/`.\n\n## Usage\n\n```jennifer\nimport \"@deckyard/magick/\" as magick;\n\ndef c as magick.Config init magick.config();\ndef img as magick.Image init magick.open($c, \"upload.jpg\");\n$img = magick.strip(magick.shrinkOnly(magick.autoOrient($img), 1600, 1600));\nmagick.write($c, magick.quality($img, 82), \"photo.webp\");\n\ndef info as magick.Info init magick.identify($c, \"photo.webp\");\nio.printf(\"%dx%d %s\\n\", $info.width, $info.height, $info.format);\n```\n\n## Requirements\n\nJennifer 0.25.0 or newer and the default `jennifer` binary (the deck needs\nthe `exec` capability); ImageMagick 7 (`magick`) on the host.\n\n## Development\n\n```sh\ntools/check-all.sh                   # the full gate, as CI runs it\njennifer test src/magick_test.j      # tests; the live ones need ImageMagick 7\ntools/check-docs.sh                  # docs against the code\n```\n\nThe tests that run ImageMagick return early where it is not installed, as in\nCI's container; run the suite on a machine with ImageMagick 7 before a release.\n\n## Licence\n\nLGPL-3.0-only, see [LICENSE](LICENSE). Copyright (C) 2026 mplx \u0026lt;mplx@jennifer-lang.dev\u0026gt;.\n\nImageMagick is a trademark of ImageMagick Studio LLC. This deck is not\naffiliated with or endorsed by it.\n"}