image-utils

IMAGE / WORKING COLLECTION

A considered toolkit
for every frame.

Convert raster formats, prepare previews, inspect metadata, and check image libraries from the command line. Your originals stay where they are.

FORMAT DESK

PNG · JPEG · WEBP · TIFF · AVIF · HEIC · JXL

WORK LOCALLY

Inspect first.
Write deliberately.

Clone the repository and install the required tools. Run this command to preview the work. Add --apply when the plan is right.

TERMINAL / PREVIEW
bin/image-utils image-thumbnail --size 640x640 --output-dir ./previews ./originals

Sources retained · Existing outputs refused

THE TOOL INDEX

Find the right instrument

38 commands

libraryRead only

library-summary

Summarize file counts, byte sizes, empty files, and extensions without reading contents.

JSON to stdout
libraryRead only

library-dupes

Find exact SHA-256 duplicates without deleting files.

JSON to stdout
libraryRead only

hash-manifest

Print a JSON SHA-256 manifest for the input tree.

JSON to stdout
libraryRead only

hash-verify

Verify file presence and hashes against a JSON manifest.

JSON to stdout
libraryRead only

tree-diff

Compare file hashes and presence against another tree.

JSON to stdout
libraryRead only

path-audit

Report filename portability issues.

JSON to stdout
conversionCreates a copy

jpg-to-png

Convert single-frame JPG to PNG.

--apply to write
conversionCreates a copy

png-to-jpg

Convert single-frame PNG to JPG.

--apply to write
conversionCreates a copy

webp-to-png

Convert single-frame WEBP to PNG.

--apply to write
conversionCreates a copy

png-to-webp

Convert single-frame PNG to WEBP.

--apply to write
conversionCreates a copy

tiff-to-png

Convert single-frame TIFF to PNG.

--apply to write
conversionCreates a copy

png-to-tiff

Convert single-frame PNG to TIFF.

--apply to write
conversionCreates a copy

bmp-to-png

Convert single-frame BMP to PNG.

--apply to write
conversionCreates a copy

png-to-avif

Convert single-frame PNG to AVIF.

--apply to write
conversionCreates a copy

avif-to-png

Convert single-frame AVIF to PNG.

--apply to write
conversionCreates a copy

heic-to-png

Convert single-frame HEIC to PNG.

--apply to write
conversionCreates a copy

jxl-to-png

Convert single-frame JXL to PNG.

--apply to write
conversionCreates a copy

png-to-jxl

Convert single-frame PNG to JXL.

--apply to write
conversionCreates a copy

gif-to-png

Convert single-frame GIF to PNG.

--apply to write
conversionCreates a copy

png-to-ppm

Convert single-frame PNG to PPM.

--apply to write
conversionCreates a copy

ppm-to-png

Convert single-frame PPM to lossless PNG.

--apply to write
transformCreates a copy

image-resize

Fit inside a bounding box without upscaling.

--apply to write
transformCreates a copy

image-thumbnail

Create a compact, oriented preview with metadata removed.

--apply to write
transformCreates a copy

image-auto-orient

Apply stored orientation to pixels.

--apply to write
transformCreates a copy

image-strip

Remove embedded metadata from a new PNG copy.

--apply to write
transformCreates a copy

image-grayscale

Create a grayscale PNG copy.

--apply to write
transformCreates a copy

image-rotate

Rotate pixels 90 degrees clockwise.

--apply to write
transformCreates a copy

image-flip

Flip pixels vertically.

--apply to write
transformCreates a copy

image-flop

Mirror pixels horizontally.

--apply to write
transformCreates a copy

image-crop

Crop a centered rectangle.

--apply to write
transformCreates a copy

image-flatten

Composite transparency over white.

--apply to write
auditRead only

image-metadata

Report dimensions, channels, bit depth, and frames.

JSON to stdout
auditRead only

image-verify

Decode all image frames to check integrity.

JSON to stdout
auditRead only

image-colors

Count unique colors.

JSON to stdout
auditRead only

image-compare

Compare an image to a reference using RMSE.

JSON to stdout
auditRead only

image-alpha-audit

Report transparency and channel information.

JSON to stdout