Repository navigation
Releases: jskoiz/imx
Releases · jskoiz/imx
Release list
IMX Developer Preview v0.19.0
IMX Release Notes
IMX v0.19.0 Daily-Use Corpus Hardening
- Adds
scripts/daily-use-corpus.sh, a no-oracle installed-binary gate over
the existing BMP/FARBFELD/JPEG/QOI/PBM/PGM/PNG/PPM surface. - Proves
identify --jsonandreport --jsonfor generated fixtures and
representative intake variants, then runs prefixed transcode smoke across all
supported format families. - Hardens stable diagnostic proof for unsupported prefixes, missing prefixed
paths, missing inputs, prefix mismatches, unsupported formats, malformed QOI,
malformed PNM max values, unsupported BMP compression, andidentify --json
failure JSON on stderr. - Wires the gate into CI, fresh install verification, package smoke,
release-archive smoke, and generated conformance evidence lookup. - Keeps the slice bounded: no new formats, stdin/stdout, recursive report or
batch mode,magickalias, full ImageMagick CLI parsing, metadata/profile
reporting, delegates, MagickCore, MagickWand, Homebrew/core, crates.io,
Windows, or hosted macOS/iOS Actions.
IMX v0.18.0 JSON Identify and Report Slice
- Adds
imx identify --json [FORMAT:]<input>, a deterministic JSON projection
of the existing identify metadata:schema_version,format,width,
height,channels, anddepth. - Adds
imx report --json [FORMAT:]<input>, a single-input status report that
returns supported metadata orstatus="unsupported"with a stable
diagnostic_codeand message for unsupported, missing, mismatched, or
malformed inputs. - Keeps text
imx identify [FORMAT:]<input>output unchanged. JPEG JSON width
and height use the same Orientation-normalized dimensions as text identify. - Extends CLI tests, self-test, install verification, package smoke,
release-archive smoke, generated conformance wording, and Homebrew formula
smoke with JSON identify/report evidence. - Keeps the slice bounded: no new formats, recursive reporting, stdin/stdout,
ImageMagick JSON schema compatibility, metadata/profile/color-management
reporting, histograms, hashes,magickalias, full ImageMagick CLI parsing,
delegates, MagickCore, MagickWand, Homebrew/core, crates.io, Windows, or
hosted macOS/iOS Actions.
IMX v0.17.0 Self-Test and Diagnostics Slice
- Adds
imx self-test, an offline installed-binary confidence check that
creates temporary fixtures and invokes the installedimxbinary for
identify, prefixed identify, transcode, exact resize, resize-fit, and
batch-convert across BMP, FARBFELD, JPEG, QOI, PBM, PGM, PNG, and PPM. - Extends install verification, package smoke, release-archive smoke,
differential corpus evidence, benchmark smoke, generated conformance reports,
and Homebrew formula smoke so release and tap artifacts exercise the same
user-visible self-test path. - Tightens CLI diagnostics and exit-code tests for unknown prefixes, mismatched
prefixes, missing inputs, unsupported BMP variants, invalid geometry,
same-path output, missing batch output directories, and unsupported command
shapes. - Keeps the release bounded: no new formats, stdin/stdout, recursive batch
mode,magickalias, full ImageMagick CLI parsing, delegates, profiles,
color management, metadata preservation, MagickCore, MagickWand,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.16.0 Bounded BMP Slice
- Adds bounded uncompressed Windows BMP support for
.bmppaths and exact
uppercaseBMP:prefixes. - Supports 24-bit BGR/RGB and 32-bit BGRA/RGBA BMP identify/decode/encode,
including top-down and bottom-up input, deterministic bottom-up output,
transcode, same-format rewrite, exact resize, resize-fit, and batch-convert. - Extends CLI tests, golden fixtures, curated corpus, malformed-input coverage,
fuzz smoke and cargo-fuzz targets, ImageMagick differential tests,
differential corpus, install verification, package/archive smoke, benchmark
smoke, conformance wording, and Homebrew formula/archive smoke with BMP
evidence. - Keeps the slice bounded: no indexed BMP, RLE compression, bitfields, OS/2
headers, color tables, masks, high-depth BMP, profiles, metadata
preservation, color management,magickalias, full ImageMagick CLI parsing,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.15.0 Safe Batch Conversion Slice
- Adds one explicit safe batch command:
imx batch-convert --to <FORMAT> --output-dir <dir> [--resize <width>x<height>|--resize-fit <width>x<height>] [FORMAT:]<input>.... - Supports batch conversion for the existing FARBFELD, JPEG, QOI, PBM, PGM,
PNG, and PPM surface only, using exact uppercase target formats and existing
exact input prefixes. - Reuses existing decode/encode, exact resize, resize-fit, prefix validation,
and per-output atomic write behavior. Batch outputs are deterministic
<input-stem>.<target-extension>files in an existing output directory. - Fails before writing on missing inputs, duplicate planned output names,
existing outputs, same-path outputs, invalid prefixes, invalid dimensions,
and unsupported formats. It does not add overwrite mode or collision
suffixing. - Extends CLI tests, ImageMagick differential proof, differential corpus,
install verification, package/archive smoke, benchmark smoke, conformance
wording, and Homebrew formula/archive smoke with batch-convert evidence. - Keeps the slice bounded: no recursion, no glob parsing beyond shell-expanded
input arguments, no stdin/stdout, no watch mode, no parallel execution, no
metadata preservation, no new formats, nomagickalias, no full ImageMagick
CLI parsing, no Homebrew/core, no crates.io, no Windows, and no hosted
macOS/iOS Actions.
IMX v0.14.0 Resize-Fit Slice
- Adds one explicit aspect-preserving resize command:
imx resize-fit <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize-fit for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and
PPM input/output surface only, including exact uppercase prefixes. - Computes the largest integer output dimensions that fit within the requested
box while preserving source aspect ratio, then uses the same center-sampled
nearest-neighbor scaling and existing destination encoders asimx resize. - Extends CLI tests, core image tests, ImageMagick differential proof,
differential corpus, install verification, package/archive smoke, conformance
wording, and Homebrew formula/archive smoke with resize-fit evidence. - Keeps the slice bounded: no change to exact
imx resize, no crop, rotate,
fill, percentages,WIDTHx,xHEIGHT, geometry flags, metadata
preservation, color management, stdin/stdout,magickalias, full
ImageMagick CLI parsing, new formats, Homebrew/core, crates.io, Windows, or
hosted macOS/iOS Actions.
IMX v0.13.0 Bounded Resize Slice
- Adds one explicit resize command:
imx resize <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and PPM
input/output surface only, including exact uppercase prefixes. - Uses center-sampled nearest-neighbor scaling to exact dimensions and leaves
channel/depth conversion to the existing destination encoders. - Extends CLI tests, core image tests, ImageMagick differential proof,
install verification, package/archive smoke, conformance wording, and
Homebrew formula smoke generation with resize evidence. - Keeps resize bounded: no crop, rotate, percentages, aspect-ratio shorthand,
filters beyond nearest neighbor, metadata preservation, color management,
stdin/stdout,magickalias, full ImageMagick CLI parsing, new formats,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.12.0 Real-World Intake Reliability Slice
- Keeps the v0.11.0 supported format and command surface unchanged:
FARBFELD, JPEG, QOI, PBM, PGM, PNG, PPM identify/transcode/same-format
rewrites with exact uppercase prefixes. - Adds a curated intake corpus covering representative generated/in-test cases:
FARBFELD RGBA16, BMP bottom-up/top-down RGB24/RGBA32, progressive grayscale
JPEG plus camera-style EXIF Orientation, QOI RGB linear, PBM comments, PGM
scaled/binary-comment/16-bit samples, PNG grayscale/grayscale-alpha/RGB16/RGBA16,
and PPM highmaxvalplus binary-comment input. No externally sourced
real-world file corpus is claimed. - Tightens malformed diagnostics by adding operation/path context at the CLI,
clearer PNM over-max and PBM sample errors, uppercase FARBFELD header
wording, and precise EOF accounting for truncated QOI multi-byte opcodes. - Adds resource-boundary proof for the 512 MiB decoded-pixel policy and
hardens oversized CLI input rejection with a metadata size precheck before
the bounded read fallback. - Extends generated fixtures, fuzz seeds, CLI tests, malformed tests, curated
corpus tests, install verification, package/archive smoke, conformance
output, and Homebrew formula smoke with v0.12 intake evidence. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.11.0 Progressive JPEG Input Slice
- Adds bounded progressive JPEG input support for 8-bit grayscale and RGB JPEG
streams. Progressive input works with.jpg,.jpeg, and exact uppercase
JPEG:operands for identify and transcode. - Carries forward v0.10.0 read-only EXIF Orientation normalization for
progressive JPEG input; oriented progressive inputs report oriented
dimensions and transcode normalized pixels. - Keeps JPEG output bounded and deterministic: IMX still writes fixed quality
90 baseline JPEG and does not preserve progressive scan layout, metadata,
profiles, color management, or source bytes. - Extends generated fixtures, CLI tests, codec tests, malformed/truncation
coverage, fuzz se...
IMX Developer Preview v0.18.0
IMX Release Notes
IMX v0.18.0 JSON Identify and Report Slice
- Adds
imx identify --json [FORMAT:]<input>, a deterministic JSON projection
of the existing identify metadata:schema_version,format,width,
height,channels, anddepth. - Adds
imx report --json [FORMAT:]<input>, a single-input status report that
returns supported metadata orstatus="unsupported"with a stable
diagnostic_codeand message for unsupported, missing, mismatched, or
malformed inputs. - Keeps text
imx identify [FORMAT:]<input>output unchanged. JPEG JSON width
and height use the same Orientation-normalized dimensions as text identify. - Extends CLI tests, self-test, install verification, package smoke,
release-archive smoke, generated conformance wording, and Homebrew formula
smoke with JSON identify/report evidence. - Keeps the slice bounded: no new formats, recursive reporting, stdin/stdout,
ImageMagick JSON schema compatibility, metadata/profile/color-management
reporting, histograms, hashes,magickalias, full ImageMagick CLI parsing,
delegates, MagickCore, MagickWand, Homebrew/core, crates.io, Windows, or
hosted macOS/iOS Actions.
IMX v0.17.0 Self-Test and Diagnostics Slice
- Adds
imx self-test, an offline installed-binary confidence check that
creates temporary fixtures and invokes the installedimxbinary for
identify, prefixed identify, transcode, exact resize, resize-fit, and
batch-convert across BMP, FARBFELD, JPEG, QOI, PBM, PGM, PNG, and PPM. - Extends install verification, package smoke, release-archive smoke,
differential corpus evidence, benchmark smoke, generated conformance reports,
and Homebrew formula smoke so release and tap artifacts exercise the same
user-visible self-test path. - Tightens CLI diagnostics and exit-code tests for unknown prefixes, mismatched
prefixes, missing inputs, unsupported BMP variants, invalid geometry,
same-path output, missing batch output directories, and unsupported command
shapes. - Keeps the release bounded: no new formats, stdin/stdout, recursive batch
mode,magickalias, full ImageMagick CLI parsing, delegates, profiles,
color management, metadata preservation, MagickCore, MagickWand,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.16.0 Bounded BMP Slice
- Adds bounded uncompressed Windows BMP support for
.bmppaths and exact
uppercaseBMP:prefixes. - Supports 24-bit BGR/RGB and 32-bit BGRA/RGBA BMP identify/decode/encode,
including top-down and bottom-up input, deterministic bottom-up output,
transcode, same-format rewrite, exact resize, resize-fit, and batch-convert. - Extends CLI tests, golden fixtures, curated corpus, malformed-input coverage,
fuzz smoke and cargo-fuzz targets, ImageMagick differential tests,
differential corpus, install verification, package/archive smoke, benchmark
smoke, conformance wording, and Homebrew formula/archive smoke with BMP
evidence. - Keeps the slice bounded: no indexed BMP, RLE compression, bitfields, OS/2
headers, color tables, masks, high-depth BMP, profiles, metadata
preservation, color management,magickalias, full ImageMagick CLI parsing,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.15.0 Safe Batch Conversion Slice
- Adds one explicit safe batch command:
imx batch-convert --to <FORMAT> --output-dir <dir> [--resize <width>x<height>|--resize-fit <width>x<height>] [FORMAT:]<input>.... - Supports batch conversion for the existing FARBFELD, JPEG, QOI, PBM, PGM,
PNG, and PPM surface only, using exact uppercase target formats and existing
exact input prefixes. - Reuses existing decode/encode, exact resize, resize-fit, prefix validation,
and per-output atomic write behavior. Batch outputs are deterministic
<input-stem>.<target-extension>files in an existing output directory. - Fails before writing on missing inputs, duplicate planned output names,
existing outputs, same-path outputs, invalid prefixes, invalid dimensions,
and unsupported formats. It does not add overwrite mode or collision
suffixing. - Extends CLI tests, ImageMagick differential proof, differential corpus,
install verification, package/archive smoke, benchmark smoke, conformance
wording, and Homebrew formula/archive smoke with batch-convert evidence. - Keeps the slice bounded: no recursion, no glob parsing beyond shell-expanded
input arguments, no stdin/stdout, no watch mode, no parallel execution, no
metadata preservation, no new formats, nomagickalias, no full ImageMagick
CLI parsing, no Homebrew/core, no crates.io, no Windows, and no hosted
macOS/iOS Actions.
IMX v0.14.0 Resize-Fit Slice
- Adds one explicit aspect-preserving resize command:
imx resize-fit <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize-fit for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and
PPM input/output surface only, including exact uppercase prefixes. - Computes the largest integer output dimensions that fit within the requested
box while preserving source aspect ratio, then uses the same center-sampled
nearest-neighbor scaling and existing destination encoders asimx resize. - Extends CLI tests, core image tests, ImageMagick differential proof,
differential corpus, install verification, package/archive smoke, conformance
wording, and Homebrew formula/archive smoke with resize-fit evidence. - Keeps the slice bounded: no change to exact
imx resize, no crop, rotate,
fill, percentages,WIDTHx,xHEIGHT, geometry flags, metadata
preservation, color management, stdin/stdout,magickalias, full
ImageMagick CLI parsing, new formats, Homebrew/core, crates.io, Windows, or
hosted macOS/iOS Actions.
IMX v0.13.0 Bounded Resize Slice
- Adds one explicit resize command:
imx resize <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and PPM
input/output surface only, including exact uppercase prefixes. - Uses center-sampled nearest-neighbor scaling to exact dimensions and leaves
channel/depth conversion to the existing destination encoders. - Extends CLI tests, core image tests, ImageMagick differential proof,
install verification, package/archive smoke, conformance wording, and
Homebrew formula smoke generation with resize evidence. - Keeps resize bounded: no crop, rotate, percentages, aspect-ratio shorthand,
filters beyond nearest neighbor, metadata preservation, color management,
stdin/stdout,magickalias, full ImageMagick CLI parsing, new formats,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.12.0 Real-World Intake Reliability Slice
- Keeps the v0.11.0 supported format and command surface unchanged:
FARBFELD, JPEG, QOI, PBM, PGM, PNG, PPM identify/transcode/same-format
rewrites with exact uppercase prefixes. - Adds a curated intake corpus covering representative generated/in-test cases:
FARBFELD RGBA16, BMP bottom-up/top-down RGB24/RGBA32, progressive grayscale
JPEG plus camera-style EXIF Orientation, QOI RGB linear, PBM comments, PGM
scaled/binary-comment/16-bit samples, PNG grayscale/grayscale-alpha/RGB16/RGBA16,
and PPM highmaxvalplus binary-comment input. No externally sourced
real-world file corpus is claimed. - Tightens malformed diagnostics by adding operation/path context at the CLI,
clearer PNM over-max and PBM sample errors, uppercase FARBFELD header
wording, and precise EOF accounting for truncated QOI multi-byte opcodes. - Adds resource-boundary proof for the 512 MiB decoded-pixel policy and
hardens oversized CLI input rejection with a metadata size precheck before
the bounded read fallback. - Extends generated fixtures, fuzz seeds, CLI tests, malformed tests, curated
corpus tests, install verification, package/archive smoke, conformance
output, and Homebrew formula smoke with v0.12 intake evidence. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.11.0 Progressive JPEG Input Slice
- Adds bounded progressive JPEG input support for 8-bit grayscale and RGB JPEG
streams. Progressive input works with.jpg,.jpeg, and exact uppercase
JPEG:operands for identify and transcode. - Carries forward v0.10.0 read-only EXIF Orientation normalization for
progressive JPEG input; oriented progressive inputs report oriented
dimensions and transcode normalized pixels. - Keeps JPEG output bounded and deterministic: IMX still writes fixed quality
90 baseline JPEG and does not preserve progressive scan layout, metadata,
profiles, color management, or source bytes. - Extends generated fixtures, CLI tests, codec tests, malformed/truncation
coverage, fuzz seeds, differential corpus, install verification, package
smoke, release-archive smoke, conformance output, and Homebrew formula smoke
with progressive JPEG RGB/gray/orientation proof. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.10.0 Real-Photo Reliability Slice
- Adds bounded read-only JPEG EXIF Orientation handling. Orientation values 1
through 8 normalize decoded pixels, andidentifyreports the oriented
dimensions. - Keeps metadata behavior narrow: EXIF is not preserved, written, or otherwise
interpreted beyond Orientation; ICC, XMP, density, thumbnails, timestamps,
GPS, and camera metadata remain unsupported. - Extends generated fixtures with deterministic JPEG Orientation 1-8 cases and
extends the differential corpus with ImageMagick-auto-orientoracle
evidence plus JPEG lossy...
IMX Developer Preview v0.17.0
IMX Release Notes
IMX v0.17.0 Self-Test and Diagnostics Slice
- Adds
imx self-test, an offline installed-binary confidence check that
creates temporary fixtures and invokes the installedimxbinary for
identify, prefixed identify, transcode, exact resize, resize-fit, and
batch-convert across BMP, FARBFELD, JPEG, QOI, PBM, PGM, PNG, and PPM. - Extends install verification, package smoke, release-archive smoke,
differential corpus evidence, benchmark smoke, generated conformance reports,
and Homebrew formula smoke so release and tap artifacts exercise the same
user-visible self-test path. - Tightens CLI diagnostics and exit-code tests for unknown prefixes, mismatched
prefixes, missing inputs, unsupported BMP variants, invalid geometry,
same-path output, missing batch output directories, and unsupported command
shapes. - Keeps the release bounded: no new formats, stdin/stdout, recursive batch
mode,magickalias, full ImageMagick CLI parsing, delegates, profiles,
color management, metadata preservation, MagickCore, MagickWand,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.16.0 Bounded BMP Slice
- Adds bounded uncompressed Windows BMP support for
.bmppaths and exact
uppercaseBMP:prefixes. - Supports 24-bit BGR/RGB and 32-bit BGRA/RGBA BMP identify/decode/encode,
including top-down and bottom-up input, deterministic bottom-up output,
transcode, same-format rewrite, exact resize, resize-fit, and batch-convert. - Extends CLI tests, golden fixtures, curated corpus, malformed-input coverage,
fuzz smoke and cargo-fuzz targets, ImageMagick differential tests,
differential corpus, install verification, package/archive smoke, benchmark
smoke, conformance wording, and Homebrew formula/archive smoke with BMP
evidence. - Keeps the slice bounded: no indexed BMP, RLE compression, bitfields, OS/2
headers, color tables, masks, high-depth BMP, profiles, metadata
preservation, color management,magickalias, full ImageMagick CLI parsing,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.15.0 Safe Batch Conversion Slice
- Adds one explicit safe batch command:
imx batch-convert --to <FORMAT> --output-dir <dir> [--resize <width>x<height>|--resize-fit <width>x<height>] [FORMAT:]<input>.... - Supports batch conversion for the existing FARBFELD, JPEG, QOI, PBM, PGM,
PNG, and PPM surface only, using exact uppercase target formats and existing
exact input prefixes. - Reuses existing decode/encode, exact resize, resize-fit, prefix validation,
and per-output atomic write behavior. Batch outputs are deterministic
<input-stem>.<target-extension>files in an existing output directory. - Fails before writing on missing inputs, duplicate planned output names,
existing outputs, same-path outputs, invalid prefixes, invalid dimensions,
and unsupported formats. It does not add overwrite mode or collision
suffixing. - Extends CLI tests, ImageMagick differential proof, differential corpus,
install verification, package/archive smoke, benchmark smoke, conformance
wording, and Homebrew formula/archive smoke with batch-convert evidence. - Keeps the slice bounded: no recursion, no glob parsing beyond shell-expanded
input arguments, no stdin/stdout, no watch mode, no parallel execution, no
metadata preservation, no new formats, nomagickalias, no full ImageMagick
CLI parsing, no Homebrew/core, no crates.io, no Windows, and no hosted
macOS/iOS Actions.
IMX v0.14.0 Resize-Fit Slice
- Adds one explicit aspect-preserving resize command:
imx resize-fit <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize-fit for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and
PPM input/output surface only, including exact uppercase prefixes. - Computes the largest integer output dimensions that fit within the requested
box while preserving source aspect ratio, then uses the same center-sampled
nearest-neighbor scaling and existing destination encoders asimx resize. - Extends CLI tests, core image tests, ImageMagick differential proof,
differential corpus, install verification, package/archive smoke, conformance
wording, and Homebrew formula/archive smoke with resize-fit evidence. - Keeps the slice bounded: no change to exact
imx resize, no crop, rotate,
fill, percentages,WIDTHx,xHEIGHT, geometry flags, metadata
preservation, color management, stdin/stdout,magickalias, full
ImageMagick CLI parsing, new formats, Homebrew/core, crates.io, Windows, or
hosted macOS/iOS Actions.
IMX v0.13.0 Bounded Resize Slice
- Adds one explicit resize command:
imx resize <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and PPM
input/output surface only, including exact uppercase prefixes. - Uses center-sampled nearest-neighbor scaling to exact dimensions and leaves
channel/depth conversion to the existing destination encoders. - Extends CLI tests, core image tests, ImageMagick differential proof,
install verification, package/archive smoke, conformance wording, and
Homebrew formula smoke generation with resize evidence. - Keeps resize bounded: no crop, rotate, percentages, aspect-ratio shorthand,
filters beyond nearest neighbor, metadata preservation, color management,
stdin/stdout,magickalias, full ImageMagick CLI parsing, new formats,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.12.0 Real-World Intake Reliability Slice
- Keeps the v0.11.0 supported format and command surface unchanged:
FARBFELD, JPEG, QOI, PBM, PGM, PNG, PPM identify/transcode/same-format
rewrites with exact uppercase prefixes. - Adds a curated intake corpus covering representative already-supported cases:
FARBFELD RGBA16, progressive grayscale JPEG, QOI RGB linear, PBM comments,
PGM scaled and 16-bit samples, PNG grayscale-alpha/RGBA16, and PPM high
maxvalwith comments. - Tightens malformed diagnostics by adding operation/path context at the CLI,
clearer PNM over-max and PBM sample errors, uppercase FARBFELD header
wording, and precise EOF accounting for truncated QOI multi-byte opcodes. - Adds resource-boundary proof for the 512 MiB decoded-pixel policy and
hardens oversized CLI input rejection with a metadata size precheck before
the bounded read fallback. - Extends generated fixtures, fuzz seeds, CLI tests, malformed tests, curated
corpus tests, install verification, package/archive smoke, conformance
output, and Homebrew formula smoke with v0.12 intake evidence. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.11.0 Progressive JPEG Input Slice
- Adds bounded progressive JPEG input support for 8-bit grayscale and RGB JPEG
streams. Progressive input works with.jpg,.jpeg, and exact uppercase
JPEG:operands for identify and transcode. - Carries forward v0.10.0 read-only EXIF Orientation normalization for
progressive JPEG input; oriented progressive inputs report oriented
dimensions and transcode normalized pixels. - Keeps JPEG output bounded and deterministic: IMX still writes fixed quality
90 baseline JPEG and does not preserve progressive scan layout, metadata,
profiles, color management, or source bytes. - Extends generated fixtures, CLI tests, codec tests, malformed/truncation
coverage, fuzz seeds, differential corpus, install verification, package
smoke, release-archive smoke, conformance output, and Homebrew formula smoke
with progressive JPEG RGB/gray/orientation proof. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.10.0 Real-Photo Reliability Slice
- Adds bounded read-only JPEG EXIF Orientation handling. Orientation values 1
through 8 normalize decoded pixels, andidentifyreports the oriented
dimensions. - Keeps metadata behavior narrow: EXIF is not preserved, written, or otherwise
interpreted beyond Orientation; ICC, XMP, density, thumbnails, timestamps,
GPS, and camera metadata remain unsupported. - Extends generated fixtures with deterministic JPEG Orientation 1-8 cases and
extends the differential corpus with ImageMagick-auto-orientoracle
evidence plus JPEG lossy metric rows. - Adds focused codec, CLI, malformed, install, package, release-archive, and
Homebrew formula smoke coverage for oriented JPEG input. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.9.0 JPEG Usability Slice
- Adds bounded Rust-native JPEG support for
.jpgand.jpegfiles plus exact
uppercaseJPEG:prefix handling.JPG:remains unsupported by design. - Supports JPEG identify/decode/encode for 8-bit grayscale and RGB streams.
identifyreportsformat=JPEG ... channels=GRAY|RGB depth=8. - Encodes JPEG deterministically at fixed quality 90 from normalized IMX
grayscale/RGB pixels. Non-opaque alpha inputs are rejected instead of silently
composited or dropped. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz,
differential-corpus, benchmark, install, package, archive-smoke, conformance,
and tap evidence to include JPEG. - Adds JPEG lossy oracle evidence with recorded RGB8 tolerance metrics rather
than byte-equality claims. - Applies a conservative 128 MiB JPEG decoded-pixel cap before decode
allocation to keep fuzz/resource-safety proof inside the ...
IMX Developer Preview v0.16.0
IMX Release Notes
IMX v0.16.0 Bounded BMP Slice
- Adds bounded uncompressed Windows BMP support for
.bmppaths and exact
uppercaseBMP:prefixes. - Supports 24-bit BGR/RGB and 32-bit BGRA/RGBA BMP identify/decode/encode,
including top-down and bottom-up input, deterministic bottom-up output,
transcode, same-format rewrite, exact resize, resize-fit, and batch-convert. - Extends CLI tests, golden fixtures, curated corpus, malformed-input coverage,
fuzz smoke and cargo-fuzz targets, ImageMagick differential tests,
differential corpus, install verification, package/archive smoke, benchmark
smoke, conformance wording, and Homebrew formula/archive smoke with BMP
evidence. - Keeps the slice bounded: no indexed BMP, RLE compression, bitfields, OS/2
headers, color tables, masks, high-depth BMP, profiles, metadata
preservation, color management,magickalias, full ImageMagick CLI parsing,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.15.0 Safe Batch Conversion Slice
- Adds one explicit safe batch command:
imx batch-convert --to <FORMAT> --output-dir <dir> [--resize <width>x<height>|--resize-fit <width>x<height>] [FORMAT:]<input>.... - Supports batch conversion for the existing FARBFELD, JPEG, QOI, PBM, PGM,
PNG, and PPM surface only, using exact uppercase target formats and existing
exact input prefixes. - Reuses existing decode/encode, exact resize, resize-fit, prefix validation,
and per-output atomic write behavior. Batch outputs are deterministic
<input-stem>.<target-extension>files in an existing output directory. - Fails before writing on missing inputs, duplicate planned output names,
existing outputs, same-path outputs, invalid prefixes, invalid dimensions,
and unsupported formats. It does not add overwrite mode or collision
suffixing. - Extends CLI tests, ImageMagick differential proof, differential corpus,
install verification, package/archive smoke, benchmark smoke, conformance
wording, and Homebrew formula/archive smoke with batch-convert evidence. - Keeps the slice bounded: no recursion, no glob parsing beyond shell-expanded
input arguments, no stdin/stdout, no watch mode, no parallel execution, no
metadata preservation, no new formats, nomagickalias, no full ImageMagick
CLI parsing, no Homebrew/core, no crates.io, no Windows, and no hosted
macOS/iOS Actions.
IMX v0.14.0 Resize-Fit Slice
- Adds one explicit aspect-preserving resize command:
imx resize-fit <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize-fit for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and
PPM input/output surface only, including exact uppercase prefixes. - Computes the largest integer output dimensions that fit within the requested
box while preserving source aspect ratio, then uses the same center-sampled
nearest-neighbor scaling and existing destination encoders asimx resize. - Extends CLI tests, core image tests, ImageMagick differential proof,
differential corpus, install verification, package/archive smoke, conformance
wording, and Homebrew formula/archive smoke with resize-fit evidence. - Keeps the slice bounded: no change to exact
imx resize, no crop, rotate,
fill, percentages,WIDTHx,xHEIGHT, geometry flags, metadata
preservation, color management, stdin/stdout,magickalias, full
ImageMagick CLI parsing, new formats, Homebrew/core, crates.io, Windows, or
hosted macOS/iOS Actions.
IMX v0.13.0 Bounded Resize Slice
- Adds one explicit resize command:
imx resize <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and PPM
input/output surface only, including exact uppercase prefixes. - Uses center-sampled nearest-neighbor scaling to exact dimensions and leaves
channel/depth conversion to the existing destination encoders. - Extends CLI tests, core image tests, ImageMagick differential proof,
install verification, package/archive smoke, conformance wording, and
Homebrew formula smoke generation with resize evidence. - Keeps resize bounded: no crop, rotate, percentages, aspect-ratio shorthand,
filters beyond nearest neighbor, metadata preservation, color management,
stdin/stdout,magickalias, full ImageMagick CLI parsing, new formats,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.12.0 Real-World Intake Reliability Slice
- Keeps the v0.11.0 supported format and command surface unchanged:
FARBFELD, JPEG, QOI, PBM, PGM, PNG, PPM identify/transcode/same-format
rewrites with exact uppercase prefixes. - Adds a curated intake corpus covering representative already-supported cases:
FARBFELD RGBA16, progressive grayscale JPEG, QOI RGB linear, PBM comments,
PGM scaled and 16-bit samples, PNG grayscale-alpha/RGBA16, and PPM high
maxvalwith comments. - Tightens malformed diagnostics by adding operation/path context at the CLI,
clearer PNM over-max and PBM sample errors, uppercase FARBFELD header
wording, and precise EOF accounting for truncated QOI multi-byte opcodes. - Adds resource-boundary proof for the 512 MiB decoded-pixel policy and
hardens oversized CLI input rejection with a metadata size precheck before
the bounded read fallback. - Extends generated fixtures, fuzz seeds, CLI tests, malformed tests, curated
corpus tests, install verification, package/archive smoke, conformance
output, and Homebrew formula smoke with v0.12 intake evidence. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.11.0 Progressive JPEG Input Slice
- Adds bounded progressive JPEG input support for 8-bit grayscale and RGB JPEG
streams. Progressive input works with.jpg,.jpeg, and exact uppercase
JPEG:operands for identify and transcode. - Carries forward v0.10.0 read-only EXIF Orientation normalization for
progressive JPEG input; oriented progressive inputs report oriented
dimensions and transcode normalized pixels. - Keeps JPEG output bounded and deterministic: IMX still writes fixed quality
90 baseline JPEG and does not preserve progressive scan layout, metadata,
profiles, color management, or source bytes. - Extends generated fixtures, CLI tests, codec tests, malformed/truncation
coverage, fuzz seeds, differential corpus, install verification, package
smoke, release-archive smoke, conformance output, and Homebrew formula smoke
with progressive JPEG RGB/gray/orientation proof. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.10.0 Real-Photo Reliability Slice
- Adds bounded read-only JPEG EXIF Orientation handling. Orientation values 1
through 8 normalize decoded pixels, andidentifyreports the oriented
dimensions. - Keeps metadata behavior narrow: EXIF is not preserved, written, or otherwise
interpreted beyond Orientation; ICC, XMP, density, thumbnails, timestamps,
GPS, and camera metadata remain unsupported. - Extends generated fixtures with deterministic JPEG Orientation 1-8 cases and
extends the differential corpus with ImageMagick-auto-orientoracle
evidence plus JPEG lossy metric rows. - Adds focused codec, CLI, malformed, install, package, release-archive, and
Homebrew formula smoke coverage for oriented JPEG input. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.9.0 JPEG Usability Slice
- Adds bounded Rust-native JPEG support for
.jpgand.jpegfiles plus exact
uppercaseJPEG:prefix handling.JPG:remains unsupported by design. - Supports JPEG identify/decode/encode for 8-bit grayscale and RGB streams.
identifyreportsformat=JPEG ... channels=GRAY|RGB depth=8. - Encodes JPEG deterministically at fixed quality 90 from normalized IMX
grayscale/RGB pixels. Non-opaque alpha inputs are rejected instead of silently
composited or dropped. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz,
differential-corpus, benchmark, install, package, archive-smoke, conformance,
and tap evidence to include JPEG. - Adds JPEG lossy oracle evidence with recorded RGB8 tolerance metrics rather
than byte-equality claims. - Applies a conservative 128 MiB JPEG decoded-pixel cap before decode
allocation to keep fuzz/resource-safety proof inside the existing 512 MiB
general image-buffer policy. - Keeps JPEG bounded: no progressive JPEG, CMYK/YCCK JPEG, 12-bit JPEG,
arithmetic-coded JPEG, lossless JPEG/JPEG-LS, JPEG 2000, JPEG XL, metadata
preservation, profiles, color management, orientation handling, or full
ImageMagick JPEG behavior. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.8.1 Release Hardening
- Tightens PNG diagnostics so malformed PNG identify paths report identify
failures and PNG decoder limit failures surface as image-size limit failures. - Adds regression coverage for grayscale-alpha PNG identify/decode/transcode and
for rejected PNG non-goals: interlacing, APNG,tRNS, and oversized rasters. - Updates generated conformance wording to include high-depth PNG evidence and
to distinguish pre-publish package smoke from post-publish archive sm...
IMX Developer Preview v0.15.0
IMX Release Notes
IMX v0.15.0 Safe Batch Conversion Slice
- Adds one explicit safe batch command:
imx batch-convert --to <FORMAT> --output-dir <dir> [--resize <width>x<height>|--resize-fit <width>x<height>] [FORMAT:]<input>.... - Supports batch conversion for the existing FARBFELD, JPEG, QOI, PBM, PGM,
PNG, and PPM surface only, using exact uppercase target formats and existing
exact input prefixes. - Reuses existing decode/encode, exact resize, resize-fit, prefix validation,
and per-output atomic write behavior. Batch outputs are deterministic
<input-stem>.<target-extension>files in an existing output directory. - Fails before writing on missing inputs, duplicate planned output names,
existing outputs, same-path outputs, invalid prefixes, invalid dimensions,
and unsupported formats. It does not add overwrite mode or collision
suffixing. - Extends CLI tests, ImageMagick differential proof, differential corpus,
install verification, package/archive smoke, benchmark smoke, conformance
wording, and Homebrew formula/archive smoke with batch-convert evidence. - Keeps the slice bounded: no recursion, no glob parsing beyond shell-expanded
input arguments, no stdin/stdout, no watch mode, no parallel execution, no
metadata preservation, no new formats, nomagickalias, no full ImageMagick
CLI parsing, no Homebrew/core, no crates.io, no Windows, and no hosted
macOS/iOS Actions.
IMX v0.14.0 Resize-Fit Slice
- Adds one explicit aspect-preserving resize command:
imx resize-fit <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize-fit for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and
PPM input/output surface only, including exact uppercase prefixes. - Computes the largest integer output dimensions that fit within the requested
box while preserving source aspect ratio, then uses the same center-sampled
nearest-neighbor scaling and existing destination encoders asimx resize. - Extends CLI tests, core image tests, ImageMagick differential proof,
differential corpus, install verification, package/archive smoke, conformance
wording, and Homebrew formula/archive smoke with resize-fit evidence. - Keeps the slice bounded: no change to exact
imx resize, no crop, rotate,
fill, percentages,WIDTHx,xHEIGHT, geometry flags, metadata
preservation, color management, stdin/stdout,magickalias, full
ImageMagick CLI parsing, new formats, Homebrew/core, crates.io, Windows, or
hosted macOS/iOS Actions.
IMX v0.13.0 Bounded Resize Slice
- Adds one explicit resize command:
imx resize <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and PPM
input/output surface only, including exact uppercase prefixes. - Uses center-sampled nearest-neighbor scaling to exact dimensions and leaves
channel/depth conversion to the existing destination encoders. - Extends CLI tests, core image tests, ImageMagick differential proof,
install verification, package/archive smoke, conformance wording, and
Homebrew formula smoke generation with resize evidence. - Keeps resize bounded: no crop, rotate, percentages, aspect-ratio shorthand,
filters beyond nearest neighbor, metadata preservation, color management,
stdin/stdout,magickalias, full ImageMagick CLI parsing, new formats,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.12.0 Real-World Intake Reliability Slice
- Keeps the v0.11.0 supported format and command surface unchanged:
FARBFELD, JPEG, QOI, PBM, PGM, PNG, PPM identify/transcode/same-format
rewrites with exact uppercase prefixes. - Adds a curated intake corpus covering representative already-supported cases:
FARBFELD RGBA16, progressive grayscale JPEG, QOI RGB linear, PBM comments,
PGM scaled and 16-bit samples, PNG grayscale-alpha/RGBA16, and PPM high
maxvalwith comments. - Tightens malformed diagnostics by adding operation/path context at the CLI,
clearer PNM over-max and PBM sample errors, uppercase FARBFELD header
wording, and precise EOF accounting for truncated QOI multi-byte opcodes. - Adds resource-boundary proof for the 512 MiB decoded-pixel policy and
hardens oversized CLI input rejection with a metadata size precheck before
the bounded read fallback. - Extends generated fixtures, fuzz seeds, CLI tests, malformed tests, curated
corpus tests, install verification, package/archive smoke, conformance
output, and Homebrew formula smoke with v0.12 intake evidence. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.11.0 Progressive JPEG Input Slice
- Adds bounded progressive JPEG input support for 8-bit grayscale and RGB JPEG
streams. Progressive input works with.jpg,.jpeg, and exact uppercase
JPEG:operands for identify and transcode. - Carries forward v0.10.0 read-only EXIF Orientation normalization for
progressive JPEG input; oriented progressive inputs report oriented
dimensions and transcode normalized pixels. - Keeps JPEG output bounded and deterministic: IMX still writes fixed quality
90 baseline JPEG and does not preserve progressive scan layout, metadata,
profiles, color management, or source bytes. - Extends generated fixtures, CLI tests, codec tests, malformed/truncation
coverage, fuzz seeds, differential corpus, install verification, package
smoke, release-archive smoke, conformance output, and Homebrew formula smoke
with progressive JPEG RGB/gray/orientation proof. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.10.0 Real-Photo Reliability Slice
- Adds bounded read-only JPEG EXIF Orientation handling. Orientation values 1
through 8 normalize decoded pixels, andidentifyreports the oriented
dimensions. - Keeps metadata behavior narrow: EXIF is not preserved, written, or otherwise
interpreted beyond Orientation; ICC, XMP, density, thumbnails, timestamps,
GPS, and camera metadata remain unsupported. - Extends generated fixtures with deterministic JPEG Orientation 1-8 cases and
extends the differential corpus with ImageMagick-auto-orientoracle
evidence plus JPEG lossy metric rows. - Adds focused codec, CLI, malformed, install, package, release-archive, and
Homebrew formula smoke coverage for oriented JPEG input. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.9.0 JPEG Usability Slice
- Adds bounded Rust-native JPEG support for
.jpgand.jpegfiles plus exact
uppercaseJPEG:prefix handling.JPG:remains unsupported by design. - Supports JPEG identify/decode/encode for 8-bit grayscale and RGB streams.
identifyreportsformat=JPEG ... channels=GRAY|RGB depth=8. - Encodes JPEG deterministically at fixed quality 90 from normalized IMX
grayscale/RGB pixels. Non-opaque alpha inputs are rejected instead of silently
composited or dropped. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz,
differential-corpus, benchmark, install, package, archive-smoke, conformance,
and tap evidence to include JPEG. - Adds JPEG lossy oracle evidence with recorded RGB8 tolerance metrics rather
than byte-equality claims. - Applies a conservative 128 MiB JPEG decoded-pixel cap before decode
allocation to keep fuzz/resource-safety proof inside the existing 512 MiB
general image-buffer policy. - Keeps JPEG bounded: no progressive JPEG, CMYK/YCCK JPEG, 12-bit JPEG,
arithmetic-coded JPEG, lossless JPEG/JPEG-LS, JPEG 2000, JPEG XL, metadata
preservation, profiles, color management, orientation handling, or full
ImageMagick JPEG behavior. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.8.1 Release Hardening
- Tightens PNG diagnostics so malformed PNG identify paths report identify
failures and PNG decoder limit failures surface as image-size limit failures. - Adds regression coverage for grayscale-alpha PNG identify/decode/transcode and
for rejected PNG non-goals: interlacing, APNG,tRNS, and oversized rasters. - Updates generated conformance wording to include high-depth PNG evidence and
to distinguish pre-publish package smoke from post-publish archive smoke. - Documents and enforces the current Linux archive baseline: published Linux
binary archives require glibc 2.34 or newer. - Hardens Ubuntu-only CI and tap proof with broader workflow path coverage,
explicit timeouts/concurrency, release tag/version validation, checked-out
tap formula install tests, and no-macOS tap formula guards.
IMX v0.8.0 PNG Raster Slice
- Adds Rust-native PNG support for a bounded raster surface: static
non-interlaced grayscale, RGB, RGBA, and grayscale-alpha PNG inputs with 8-bit
or 16-bit samples. - Adds
.pngdetection by PNG signature before extension fallback, exact
uppercasePNG:prefix handling, PNG identify, PNG transcodes to/from the
existing FARBFELD/QOI/PBM/PGM/PPM formats, and deterministic PNG same-format
rewrites. - Encodes PNG deterministically from the normalized IMX raster model. Source
compression/filter choices, ancillary chunks, comments, timestamps, gamma,
profiles, EXIF, and othe...
IMX Developer Preview v0.14.0
IMX Release Notes
IMX v0.14.0 Resize-Fit Slice
- Adds one explicit aspect-preserving resize command:
imx resize-fit <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize-fit for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and
PPM input/output surface only, including exact uppercase prefixes. - Computes the largest integer output dimensions that fit within the requested
box while preserving source aspect ratio, then uses the same center-sampled
nearest-neighbor scaling and existing destination encoders asimx resize. - Extends CLI tests, core image tests, ImageMagick differential proof,
differential corpus, install verification, package/archive smoke, conformance
wording, and Homebrew formula/archive smoke with resize-fit evidence. - Keeps the slice bounded: no change to exact
imx resize, no crop, rotate,
fill, percentages,WIDTHx,xHEIGHT, geometry flags, metadata
preservation, color management, stdin/stdout,magickalias, full
ImageMagick CLI parsing, new formats, Homebrew/core, crates.io, Windows, or
hosted macOS/iOS Actions.
IMX v0.13.0 Bounded Resize Slice
- Adds one explicit resize command:
imx resize <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and PPM
input/output surface only, including exact uppercase prefixes. - Uses center-sampled nearest-neighbor scaling to exact dimensions and leaves
channel/depth conversion to the existing destination encoders. - Extends CLI tests, core image tests, ImageMagick differential proof,
install verification, package/archive smoke, conformance wording, and
Homebrew formula smoke generation with resize evidence. - Keeps resize bounded: no crop, rotate, percentages, aspect-ratio shorthand,
filters beyond nearest neighbor, metadata preservation, color management,
stdin/stdout,magickalias, full ImageMagick CLI parsing, new formats,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.12.0 Real-World Intake Reliability Slice
- Keeps the v0.11.0 supported format and command surface unchanged:
FARBFELD, JPEG, QOI, PBM, PGM, PNG, PPM identify/transcode/same-format
rewrites with exact uppercase prefixes. - Adds a curated intake corpus covering representative already-supported cases:
FARBFELD RGBA16, progressive grayscale JPEG, QOI RGB linear, PBM comments,
PGM scaled and 16-bit samples, PNG grayscale-alpha/RGBA16, and PPM high
maxvalwith comments. - Tightens malformed diagnostics by adding operation/path context at the CLI,
clearer PNM over-max and PBM sample errors, uppercase FARBFELD header
wording, and precise EOF accounting for truncated QOI multi-byte opcodes. - Adds resource-boundary proof for the 512 MiB decoded-pixel policy and
hardens oversized CLI input rejection with a metadata size precheck before
the bounded read fallback. - Extends generated fixtures, fuzz seeds, CLI tests, malformed tests, curated
corpus tests, install verification, package/archive smoke, conformance
output, and Homebrew formula smoke with v0.12 intake evidence. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.11.0 Progressive JPEG Input Slice
- Adds bounded progressive JPEG input support for 8-bit grayscale and RGB JPEG
streams. Progressive input works with.jpg,.jpeg, and exact uppercase
JPEG:operands for identify and transcode. - Carries forward v0.10.0 read-only EXIF Orientation normalization for
progressive JPEG input; oriented progressive inputs report oriented
dimensions and transcode normalized pixels. - Keeps JPEG output bounded and deterministic: IMX still writes fixed quality
90 baseline JPEG and does not preserve progressive scan layout, metadata,
profiles, color management, or source bytes. - Extends generated fixtures, CLI tests, codec tests, malformed/truncation
coverage, fuzz seeds, differential corpus, install verification, package
smoke, release-archive smoke, conformance output, and Homebrew formula smoke
with progressive JPEG RGB/gray/orientation proof. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.10.0 Real-Photo Reliability Slice
- Adds bounded read-only JPEG EXIF Orientation handling. Orientation values 1
through 8 normalize decoded pixels, andidentifyreports the oriented
dimensions. - Keeps metadata behavior narrow: EXIF is not preserved, written, or otherwise
interpreted beyond Orientation; ICC, XMP, density, thumbnails, timestamps,
GPS, and camera metadata remain unsupported. - Extends generated fixtures with deterministic JPEG Orientation 1-8 cases and
extends the differential corpus with ImageMagick-auto-orientoracle
evidence plus JPEG lossy metric rows. - Adds focused codec, CLI, malformed, install, package, release-archive, and
Homebrew formula smoke coverage for oriented JPEG input. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.9.0 JPEG Usability Slice
- Adds bounded Rust-native JPEG support for
.jpgand.jpegfiles plus exact
uppercaseJPEG:prefix handling.JPG:remains unsupported by design. - Supports JPEG identify/decode/encode for 8-bit grayscale and RGB streams.
identifyreportsformat=JPEG ... channels=GRAY|RGB depth=8. - Encodes JPEG deterministically at fixed quality 90 from normalized IMX
grayscale/RGB pixels. Non-opaque alpha inputs are rejected instead of silently
composited or dropped. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz,
differential-corpus, benchmark, install, package, archive-smoke, conformance,
and tap evidence to include JPEG. - Adds JPEG lossy oracle evidence with recorded RGB8 tolerance metrics rather
than byte-equality claims. - Applies a conservative 128 MiB JPEG decoded-pixel cap before decode
allocation to keep fuzz/resource-safety proof inside the existing 512 MiB
general image-buffer policy. - Keeps JPEG bounded: no progressive JPEG, CMYK/YCCK JPEG, 12-bit JPEG,
arithmetic-coded JPEG, lossless JPEG/JPEG-LS, JPEG 2000, JPEG XL, metadata
preservation, profiles, color management, orientation handling, or full
ImageMagick JPEG behavior. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.8.1 Release Hardening
- Tightens PNG diagnostics so malformed PNG identify paths report identify
failures and PNG decoder limit failures surface as image-size limit failures. - Adds regression coverage for grayscale-alpha PNG identify/decode/transcode and
for rejected PNG non-goals: interlacing, APNG,tRNS, and oversized rasters. - Updates generated conformance wording to include high-depth PNG evidence and
to distinguish pre-publish package smoke from post-publish archive smoke. - Documents and enforces the current Linux archive baseline: published Linux
binary archives require glibc 2.34 or newer. - Hardens Ubuntu-only CI and tap proof with broader workflow path coverage,
explicit timeouts/concurrency, release tag/version validation, checked-out
tap formula install tests, and no-macOS tap formula guards.
IMX v0.8.0 PNG Raster Slice
- Adds Rust-native PNG support for a bounded raster surface: static
non-interlaced grayscale, RGB, RGBA, and grayscale-alpha PNG inputs with 8-bit
or 16-bit samples. - Adds
.pngdetection by PNG signature before extension fallback, exact
uppercasePNG:prefix handling, PNG identify, PNG transcodes to/from the
existing FARBFELD/QOI/PBM/PGM/PPM formats, and deterministic PNG same-format
rewrites. - Encodes PNG deterministically from the normalized IMX raster model. Source
compression/filter choices, ancillary chunks, comments, timestamps, gamma,
profiles, EXIF, and other metadata are not preserved. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz, benchmark,
install, package, archive-smoke, differential-corpus, and conformance evidence
to include PNG. - Keeps PNG bounded: no APNG, indexed/palette PNG, low-bit PNG,
tRNS
color-key transparency, PNG color management/profile semantics, or full
ImageMagick PNG behavior. - Carries forward the v0.7.0 high-depth PPM behavior and the v0.6.0 exact
uppercase prefix behavior for FARBFELD, QOI, PBM, PGM, PNG, and PPM. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.7.0 High-Depth PPM
- Adds high-depth PPM support for the existing PPM codec only: uppercase
P3
andP6withmaxval256..65535 identify and decode as RGB16BE. - Carries forward the v0.6.0 exact uppercase
FARBFELD:,QOI:,PBM:,
PGM:, andPPM:prefix behavior for identify, transcode, and same-format
rewrite paths. - Adds a core RGB16BE image representation so PPM16 can preserve precision when
transcoding to FARBFELD, PGM16, or same-format PPM output. - Encodes PPM deterministically as binary
P6:maxval 255for 8-bit sources
and ...
IMX Developer Preview v0.13.0
IMX Release Notes
IMX v0.13.0 Bounded Resize Slice
- Adds one explicit resize command:
imx resize <width>x<height> [FORMAT:]<input> [FORMAT:]<output>. - Supports resize for the existing FARBFELD, JPEG, QOI, PBM, PGM, PNG, and PPM
input/output surface only, including exact uppercase prefixes. - Uses center-sampled nearest-neighbor scaling to exact dimensions and leaves
channel/depth conversion to the existing destination encoders. - Extends CLI tests, core image tests, ImageMagick differential proof,
install verification, package/archive smoke, conformance wording, and
Homebrew formula smoke generation with resize evidence. - Keeps resize bounded: no crop, rotate, percentages, aspect-ratio shorthand,
filters beyond nearest neighbor, metadata preservation, color management,
stdin/stdout,magickalias, full ImageMagick CLI parsing, new formats,
Homebrew/core, crates.io, Windows, or hosted macOS/iOS Actions.
IMX v0.12.0 Real-World Intake Reliability Slice
- Keeps the v0.11.0 supported format and command surface unchanged:
FARBFELD, JPEG, QOI, PBM, PGM, PNG, PPM identify/transcode/same-format
rewrites with exact uppercase prefixes. - Adds a curated intake corpus covering representative already-supported cases:
FARBFELD RGBA16, progressive grayscale JPEG, QOI RGB linear, PBM comments,
PGM scaled and 16-bit samples, PNG grayscale-alpha/RGBA16, and PPM high
maxvalwith comments. - Tightens malformed diagnostics by adding operation/path context at the CLI,
clearer PNM over-max and PBM sample errors, uppercase FARBFELD header
wording, and precise EOF accounting for truncated QOI multi-byte opcodes. - Adds resource-boundary proof for the 512 MiB decoded-pixel policy and
hardens oversized CLI input rejection with a metadata size precheck before
the bounded read fallback. - Extends generated fixtures, fuzz seeds, CLI tests, malformed tests, curated
corpus tests, install verification, package/archive smoke, conformance
output, and Homebrew formula smoke with v0.12 intake evidence. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.11.0 Progressive JPEG Input Slice
- Adds bounded progressive JPEG input support for 8-bit grayscale and RGB JPEG
streams. Progressive input works with.jpg,.jpeg, and exact uppercase
JPEG:operands for identify and transcode. - Carries forward v0.10.0 read-only EXIF Orientation normalization for
progressive JPEG input; oriented progressive inputs report oriented
dimensions and transcode normalized pixels. - Keeps JPEG output bounded and deterministic: IMX still writes fixed quality
90 baseline JPEG and does not preserve progressive scan layout, metadata,
profiles, color management, or source bytes. - Extends generated fixtures, CLI tests, codec tests, malformed/truncation
coverage, fuzz seeds, differential corpus, install verification, package
smoke, release-archive smoke, conformance output, and Homebrew formula smoke
with progressive JPEG RGB/gray/orientation proof. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.10.0 Real-Photo Reliability Slice
- Adds bounded read-only JPEG EXIF Orientation handling. Orientation values 1
through 8 normalize decoded pixels, andidentifyreports the oriented
dimensions. - Keeps metadata behavior narrow: EXIF is not preserved, written, or otherwise
interpreted beyond Orientation; ICC, XMP, density, thumbnails, timestamps,
GPS, and camera metadata remain unsupported. - Extends generated fixtures with deterministic JPEG Orientation 1-8 cases and
extends the differential corpus with ImageMagick-auto-orientoracle
evidence plus JPEG lossy metric rows. - Adds focused codec, CLI, malformed, install, package, release-archive, and
Homebrew formula smoke coverage for oriented JPEG input. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.9.0 JPEG Usability Slice
- Adds bounded Rust-native JPEG support for
.jpgand.jpegfiles plus exact
uppercaseJPEG:prefix handling.JPG:remains unsupported by design. - Supports JPEG identify/decode/encode for 8-bit grayscale and RGB streams.
identifyreportsformat=JPEG ... channels=GRAY|RGB depth=8. - Encodes JPEG deterministically at fixed quality 90 from normalized IMX
grayscale/RGB pixels. Non-opaque alpha inputs are rejected instead of silently
composited or dropped. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz,
differential-corpus, benchmark, install, package, archive-smoke, conformance,
and tap evidence to include JPEG. - Adds JPEG lossy oracle evidence with recorded RGB8 tolerance metrics rather
than byte-equality claims. - Applies a conservative 128 MiB JPEG decoded-pixel cap before decode
allocation to keep fuzz/resource-safety proof inside the existing 512 MiB
general image-buffer policy. - Keeps JPEG bounded: no progressive JPEG, CMYK/YCCK JPEG, 12-bit JPEG,
arithmetic-coded JPEG, lossless JPEG/JPEG-LS, JPEG 2000, JPEG XL, metadata
preservation, profiles, color management, orientation handling, or full
ImageMagick JPEG behavior. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.8.1 Release Hardening
- Tightens PNG diagnostics so malformed PNG identify paths report identify
failures and PNG decoder limit failures surface as image-size limit failures. - Adds regression coverage for grayscale-alpha PNG identify/decode/transcode and
for rejected PNG non-goals: interlacing, APNG,tRNS, and oversized rasters. - Updates generated conformance wording to include high-depth PNG evidence and
to distinguish pre-publish package smoke from post-publish archive smoke. - Documents and enforces the current Linux archive baseline: published Linux
binary archives require glibc 2.34 or newer. - Hardens Ubuntu-only CI and tap proof with broader workflow path coverage,
explicit timeouts/concurrency, release tag/version validation, checked-out
tap formula install tests, and no-macOS tap formula guards.
IMX v0.8.0 PNG Raster Slice
- Adds Rust-native PNG support for a bounded raster surface: static
non-interlaced grayscale, RGB, RGBA, and grayscale-alpha PNG inputs with 8-bit
or 16-bit samples. - Adds
.pngdetection by PNG signature before extension fallback, exact
uppercasePNG:prefix handling, PNG identify, PNG transcodes to/from the
existing FARBFELD/QOI/PBM/PGM/PPM formats, and deterministic PNG same-format
rewrites. - Encodes PNG deterministically from the normalized IMX raster model. Source
compression/filter choices, ancillary chunks, comments, timestamps, gamma,
profiles, EXIF, and other metadata are not preserved. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz, benchmark,
install, package, archive-smoke, differential-corpus, and conformance evidence
to include PNG. - Keeps PNG bounded: no APNG, indexed/palette PNG, low-bit PNG,
tRNS
color-key transparency, PNG color management/profile semantics, or full
ImageMagick PNG behavior. - Carries forward the v0.7.0 high-depth PPM behavior and the v0.6.0 exact
uppercase prefix behavior for FARBFELD, QOI, PBM, PGM, PNG, and PPM. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.7.0 High-Depth PPM
- Adds high-depth PPM support for the existing PPM codec only: uppercase
P3
andP6withmaxval256..65535 identify and decode as RGB16BE. - Carries forward the v0.6.0 exact uppercase
FARBFELD:,QOI:,PBM:,
PGM:, andPPM:prefix behavior for identify, transcode, and same-format
rewrite paths. - Adds a core RGB16BE image representation so PPM16 can preserve precision when
transcoding to FARBFELD, PGM16, or same-format PPM output. - Encodes PPM deterministically as binary
P6:maxval 255for 8-bit sources
andmaxval 65535for 16-bit RGB/RGBA/GRAY sources. - Extends CLI, codec, golden, malformed, fuzz-smoke, benchmark, install,
package, archive-smoke, differential-corpus, and conformance evidence to cover
the PPM16 slice. - Keeps the boundary unchanged: no PNG/JPEG/TIFF/PAM/PFM/BMP, no stdin/stdout,
nomagickalias, no full ImageMagick CLI, no delegates, no MagickCore, no
MagickWand, no crates.io, no Homebrew/core, no Windows, and no hosted macOS or
iOS GitHub Actions. - Publishes Linux x86_64 and Linux arm64 release archives through Ubuntu-only
hosted automation, plus generatedSHA256SUMS,imx.rb, and conformance
report assets. The Homebrew tap update is generated from the published v0.7.0
SHA256SUMSand remains tap-only, not Homebrew/core.
IMX v0.6.0 Prefix Compatibility
- Adds exact uppercase
FARBFELD:,QOI:,PBM:,PGM:, andPPM:
prefixes for the existing identify and two-path transcode operands. - Prefixes are stripped before file IO and must match detected input format or
output path extension. Unknown prefixes, missing prefi...
IMX Developer Preview v0.12.0
IMX Release Notes
IMX v0.12.0 Real-World Intake Reliability Slice
- Keeps the v0.11.0 supported format and command surface unchanged:
FARBFELD, JPEG, QOI, PBM, PGM, PNG, PPM identify/transcode/same-format
rewrites with exact uppercase prefixes. - Adds a curated intake corpus covering representative already-supported cases:
FARBFELD RGBA16, progressive grayscale JPEG, QOI RGB linear, PBM comments,
PGM scaled and 16-bit samples, PNG grayscale-alpha/RGBA16, and PPM high
maxvalwith comments. - Tightens malformed diagnostics by adding operation/path context at the CLI,
clearer PNM over-max and PBM sample errors, uppercase FARBFELD header
wording, and precise EOF accounting for truncated QOI multi-byte opcodes. - Adds resource-boundary proof for the 512 MiB decoded-pixel policy and
hardens oversized CLI input rejection with a metadata size precheck before
the bounded read fallback. - Extends generated fixtures, fuzz seeds, CLI tests, malformed tests, curated
corpus tests, install verification, package/archive smoke, conformance
output, and Homebrew formula smoke with v0.12 intake evidence. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.11.0 Progressive JPEG Input Slice
- Adds bounded progressive JPEG input support for 8-bit grayscale and RGB JPEG
streams. Progressive input works with.jpg,.jpeg, and exact uppercase
JPEG:operands for identify and transcode. - Carries forward v0.10.0 read-only EXIF Orientation normalization for
progressive JPEG input; oriented progressive inputs report oriented
dimensions and transcode normalized pixels. - Keeps JPEG output bounded and deterministic: IMX still writes fixed quality
90 baseline JPEG and does not preserve progressive scan layout, metadata,
profiles, color management, or source bytes. - Extends generated fixtures, CLI tests, codec tests, malformed/truncation
coverage, fuzz seeds, differential corpus, install verification, package
smoke, release-archive smoke, conformance output, and Homebrew formula smoke
with progressive JPEG RGB/gray/orientation proof. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.10.0 Real-Photo Reliability Slice
- Adds bounded read-only JPEG EXIF Orientation handling. Orientation values 1
through 8 normalize decoded pixels, andidentifyreports the oriented
dimensions. - Keeps metadata behavior narrow: EXIF is not preserved, written, or otherwise
interpreted beyond Orientation; ICC, XMP, density, thumbnails, timestamps,
GPS, and camera metadata remain unsupported. - Extends generated fixtures with deterministic JPEG Orientation 1-8 cases and
extends the differential corpus with ImageMagick-auto-orientoracle
evidence plus JPEG lossy metric rows. - Adds focused codec, CLI, malformed, install, package, release-archive, and
Homebrew formula smoke coverage for oriented JPEG input. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.9.0 JPEG Usability Slice
- Adds bounded Rust-native JPEG support for
.jpgand.jpegfiles plus exact
uppercaseJPEG:prefix handling.JPG:remains unsupported by design. - Supports JPEG identify/decode/encode for 8-bit grayscale and RGB streams.
identifyreportsformat=JPEG ... channels=GRAY|RGB depth=8. - Encodes JPEG deterministically at fixed quality 90 from normalized IMX
grayscale/RGB pixels. Non-opaque alpha inputs are rejected instead of silently
composited or dropped. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz,
differential-corpus, benchmark, install, package, archive-smoke, conformance,
and tap evidence to include JPEG. - Adds JPEG lossy oracle evidence with recorded RGB8 tolerance metrics rather
than byte-equality claims. - Applies a conservative 128 MiB JPEG decoded-pixel cap before decode
allocation to keep fuzz/resource-safety proof inside the existing 512 MiB
general image-buffer policy. - Keeps JPEG bounded: no progressive JPEG, CMYK/YCCK JPEG, 12-bit JPEG,
arithmetic-coded JPEG, lossless JPEG/JPEG-LS, JPEG 2000, JPEG XL, metadata
preservation, profiles, color management, orientation handling, or full
ImageMagick JPEG behavior. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.8.1 Release Hardening
- Tightens PNG diagnostics so malformed PNG identify paths report identify
failures and PNG decoder limit failures surface as image-size limit failures. - Adds regression coverage for grayscale-alpha PNG identify/decode/transcode and
for rejected PNG non-goals: interlacing, APNG,tRNS, and oversized rasters. - Updates generated conformance wording to include high-depth PNG evidence and
to distinguish pre-publish package smoke from post-publish archive smoke. - Documents and enforces the current Linux archive baseline: published v0.8.x
binary archives require glibc 2.34 or newer. - Hardens Ubuntu-only CI and tap proof with broader workflow path coverage,
explicit timeouts/concurrency, release tag/version validation, checked-out
tap formula install tests, and no-macOS tap formula guards.
IMX v0.8.0 PNG Raster Slice
- Adds Rust-native PNG support for a bounded raster surface: static
non-interlaced grayscale, RGB, RGBA, and grayscale-alpha PNG inputs with 8-bit
or 16-bit samples. - Adds
.pngdetection by PNG signature before extension fallback, exact
uppercasePNG:prefix handling, PNG identify, PNG transcodes to/from the
existing FARBFELD/QOI/PBM/PGM/PPM formats, and deterministic PNG same-format
rewrites. - Encodes PNG deterministically from the normalized IMX raster model. Source
compression/filter choices, ancillary chunks, comments, timestamps, gamma,
profiles, EXIF, and other metadata are not preserved. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz, benchmark,
install, package, archive-smoke, differential-corpus, and conformance evidence
to include PNG. - Keeps PNG bounded: no APNG, indexed/palette PNG, low-bit PNG,
tRNS
color-key transparency, PNG color management/profile semantics, or full
ImageMagick PNG behavior. - Carries forward the v0.7.0 high-depth PPM behavior and the v0.6.0 exact
uppercase prefix behavior for FARBFELD, QOI, PBM, PGM, PNG, and PPM. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.7.0 High-Depth PPM
- Adds high-depth PPM support for the existing PPM codec only: uppercase
P3
andP6withmaxval256..65535 identify and decode as RGB16BE. - Carries forward the v0.6.0 exact uppercase
FARBFELD:,QOI:,PBM:,
PGM:, andPPM:prefix behavior for identify, transcode, and same-format
rewrite paths. - Adds a core RGB16BE image representation so PPM16 can preserve precision when
transcoding to FARBFELD, PGM16, or same-format PPM output. - Encodes PPM deterministically as binary
P6:maxval 255for 8-bit sources
andmaxval 65535for 16-bit RGB/RGBA/GRAY sources. - Extends CLI, codec, golden, malformed, fuzz-smoke, benchmark, install,
package, archive-smoke, differential-corpus, and conformance evidence to cover
the PPM16 slice. - Keeps the boundary unchanged: no PNG/JPEG/TIFF/PAM/PFM/BMP, no stdin/stdout,
nomagickalias, no full ImageMagick CLI, no delegates, no MagickCore, no
MagickWand, no crates.io, no Homebrew/core, no Windows, and no hosted macOS or
iOS GitHub Actions. - Publishes Linux x86_64 and Linux arm64 release archives through Ubuntu-only
hosted automation, plus generatedSHA256SUMS,imx.rb, and conformance
report assets. The Homebrew tap update is generated from the published v0.7.0
SHA256SUMSand remains tap-only, not Homebrew/core.
IMX v0.6.0 Prefix Compatibility
- Adds exact uppercase
FARBFELD:,QOI:,PBM:,PGM:, andPPM:
prefixes for the existing identify and two-path transcode operands. - Prefixes are stripped before file IO and must match detected input format or
output path extension. Unknown prefixes, missing prefixed paths, mismatched
prefixes, and prefixed same-path writes fail witherror: .... - Extends the ImageMagick oracle corpus with prefixed identify cases and a
prefixed transcode ring across the existing FARBFELD/QOI/PBM/PGM/PPM surface. - Carries forward the v0.5.0 deterministic identify, cross-format transcode,
and same-format rewrite surface for FARBFELD, QOI, PBM, PGM, and PPM. - Publishes Linux x86_64 and Linux arm64 release archives through Ubuntu-only
hosted automation, plus generatedSHA256SUMS,imx.rb, and conformance
report assets. - The Homebrew tap update is generated from the published v0.6.0
SHA256SUMS
and remains tap-only, not Homebrew/core. - Keeps the boundary unchanged: no new image formats, no stdin/stdout
streaming, no full ImageMagick CLI, no delegates, no MagickCore, and no
MagickWand.
IMX v0.5.0 Developer Preview
This preview ships a standalone Rust image-tool ...
IMX Developer Preview v0.11.0
IMX Release Notes
IMX v0.11.0 Progressive JPEG Input Slice
- Adds bounded progressive JPEG input support for 8-bit grayscale and RGB JPEG
streams. Progressive input works with.jpg,.jpeg, and exact uppercase
JPEG:operands for identify and transcode. - Carries forward v0.10.0 read-only EXIF Orientation normalization for
progressive JPEG input; oriented progressive inputs report oriented
dimensions and transcode normalized pixels. - Keeps JPEG output bounded and deterministic: IMX still writes fixed quality
90 baseline JPEG and does not preserve progressive scan layout, metadata,
profiles, color management, or source bytes. - Extends generated fixtures, CLI tests, codec tests, malformed/truncation
coverage, fuzz seeds, differential corpus, install verification, package
smoke, release-archive smoke, conformance output, and Homebrew formula smoke
with progressive JPEG RGB/gray/orientation proof. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.10.0 Real-Photo Reliability Slice
- Adds bounded read-only JPEG EXIF Orientation handling. Orientation values 1
through 8 normalize decoded pixels, andidentifyreports the oriented
dimensions. - Keeps metadata behavior narrow: EXIF is not preserved, written, or otherwise
interpreted beyond Orientation; ICC, XMP, density, thumbnails, timestamps,
GPS, and camera metadata remain unsupported. - Extends generated fixtures with deterministic JPEG Orientation 1-8 cases and
extends the differential corpus with ImageMagick-auto-orientoracle
evidence plus JPEG lossy metric rows. - Adds focused codec, CLI, malformed, install, package, release-archive, and
Homebrew formula smoke coverage for oriented JPEG input. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.9.0 JPEG Usability Slice
- Adds bounded Rust-native JPEG support for
.jpgand.jpegfiles plus exact
uppercaseJPEG:prefix handling.JPG:remains unsupported by design. - Supports JPEG identify/decode/encode for 8-bit grayscale and RGB streams.
identifyreportsformat=JPEG ... channels=GRAY|RGB depth=8. - Encodes JPEG deterministically at fixed quality 90 from normalized IMX
grayscale/RGB pixels. Non-opaque alpha inputs are rejected instead of silently
composited or dropped. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz,
differential-corpus, benchmark, install, package, archive-smoke, conformance,
and tap evidence to include JPEG. - Adds JPEG lossy oracle evidence with recorded RGB8 tolerance metrics rather
than byte-equality claims. - Applies a conservative 128 MiB JPEG decoded-pixel cap before decode
allocation to keep fuzz/resource-safety proof inside the existing 512 MiB
general image-buffer policy. - Keeps JPEG bounded: no progressive JPEG, CMYK/YCCK JPEG, 12-bit JPEG,
arithmetic-coded JPEG, lossless JPEG/JPEG-LS, JPEG 2000, JPEG XL, metadata
preservation, profiles, color management, orientation handling, or full
ImageMagick JPEG behavior. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.8.1 Release Hardening
- Tightens PNG diagnostics so malformed PNG identify paths report identify
failures and PNG decoder limit failures surface as image-size limit failures. - Adds regression coverage for grayscale-alpha PNG identify/decode/transcode and
for rejected PNG non-goals: interlacing, APNG,tRNS, and oversized rasters. - Updates generated conformance wording to include high-depth PNG evidence and
to distinguish pre-publish package smoke from post-publish archive smoke. - Documents and enforces the current Linux archive baseline: published v0.8.x
binary archives require glibc 2.34 or newer. - Hardens Ubuntu-only CI and tap proof with broader workflow path coverage,
explicit timeouts/concurrency, release tag/version validation, checked-out
tap formula install tests, and no-macOS tap formula guards.
IMX v0.8.0 PNG Raster Slice
- Adds Rust-native PNG support for a bounded raster surface: static
non-interlaced grayscale, RGB, RGBA, and grayscale-alpha PNG inputs with 8-bit
or 16-bit samples. - Adds
.pngdetection by PNG signature before extension fallback, exact
uppercasePNG:prefix handling, PNG identify, PNG transcodes to/from the
existing FARBFELD/QOI/PBM/PGM/PPM formats, and deterministic PNG same-format
rewrites. - Encodes PNG deterministically from the normalized IMX raster model. Source
compression/filter choices, ancillary chunks, comments, timestamps, gamma,
profiles, EXIF, and other metadata are not preserved. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz, benchmark,
install, package, archive-smoke, differential-corpus, and conformance evidence
to include PNG. - Keeps PNG bounded: no APNG, indexed/palette PNG, low-bit PNG,
tRNS
color-key transparency, PNG color management/profile semantics, or full
ImageMagick PNG behavior. - Carries forward the v0.7.0 high-depth PPM behavior and the v0.6.0 exact
uppercase prefix behavior for FARBFELD, QOI, PBM, PGM, PNG, and PPM. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.7.0 High-Depth PPM
- Adds high-depth PPM support for the existing PPM codec only: uppercase
P3
andP6withmaxval256..65535 identify and decode as RGB16BE. - Carries forward the v0.6.0 exact uppercase
FARBFELD:,QOI:,PBM:,
PGM:, andPPM:prefix behavior for identify, transcode, and same-format
rewrite paths. - Adds a core RGB16BE image representation so PPM16 can preserve precision when
transcoding to FARBFELD, PGM16, or same-format PPM output. - Encodes PPM deterministically as binary
P6:maxval 255for 8-bit sources
andmaxval 65535for 16-bit RGB/RGBA/GRAY sources. - Extends CLI, codec, golden, malformed, fuzz-smoke, benchmark, install,
package, archive-smoke, differential-corpus, and conformance evidence to cover
the PPM16 slice. - Keeps the boundary unchanged: no PNG/JPEG/TIFF/PAM/PFM/BMP, no stdin/stdout,
nomagickalias, no full ImageMagick CLI, no delegates, no MagickCore, no
MagickWand, no crates.io, no Homebrew/core, no Windows, and no hosted macOS or
iOS GitHub Actions. - Publishes Linux x86_64 and Linux arm64 release archives through Ubuntu-only
hosted automation, plus generatedSHA256SUMS,imx.rb, and conformance
report assets. The Homebrew tap update is generated from the published v0.7.0
SHA256SUMSand remains tap-only, not Homebrew/core.
IMX v0.6.0 Prefix Compatibility
- Adds exact uppercase
FARBFELD:,QOI:,PBM:,PGM:, andPPM:
prefixes for the existing identify and two-path transcode operands. - Prefixes are stripped before file IO and must match detected input format or
output path extension. Unknown prefixes, missing prefixed paths, mismatched
prefixes, and prefixed same-path writes fail witherror: .... - Extends the ImageMagick oracle corpus with prefixed identify cases and a
prefixed transcode ring across the existing FARBFELD/QOI/PBM/PGM/PPM surface. - Carries forward the v0.5.0 deterministic identify, cross-format transcode,
and same-format rewrite surface for FARBFELD, QOI, PBM, PGM, and PPM. - Publishes Linux x86_64 and Linux arm64 release archives through Ubuntu-only
hosted automation, plus generatedSHA256SUMS,imx.rb, and conformance
report assets. - The Homebrew tap update is generated from the published v0.6.0
SHA256SUMS
and remains tap-only, not Homebrew/core. - Keeps the boundary unchanged: no new image formats, no stdin/stdout
streaming, no full ImageMagick CLI, no delegates, no MagickCore, and no
MagickWand.
IMX v0.5.0 Developer Preview
This preview ships a standalone Rust image-tool binary named imx.
Supported Commands
imx --help
imx --version
imx identify <input.ff|input.farbfeld|input.qoi|input.pbm|input.pgm|input.ppm>
imx <input.ff|input.farbfeld|input.qoi|input.pbm|input.pgm|input.ppm> \
<output.ff|output.farbfeld|output.qoi|output.pbm|output.pgm|output.ppm>Supported Formats
- FARBFELD RGBA16BE decode/encode.
- QOI RGB8/RGBA8 decode/encode.
- PBM ASCII
P1and binaryP4bilevel decode; deterministic binaryP4
encode. - PGM ASCII
P2and binaryP5GRAY8/GRAY16BE decode; deterministic binary
P5encode. - PPM ASCII
P3and binaryP6RGB8 decode; deterministic binaryP6encode.
New In v0.5.0
- Added deterministic same-format rewrites for the existing FARBFELD, QOI,
PBM, PGM, and PPM slice.imx input.ppm output.ppmand the equivalent
same-format forms now decode and re-encode to deterministic output when the
input and output paths are different. - Expanded the ImageMagick oracle corpus from 20 cross-format transcodes to 25
directed transcodes, including same-format rewrites for all supported
formats. - Kept the release boundary unchanged: no new image formats, no format
prefixes, no stdin/stdout streaming, no full ImageMagick CLI, no delegates,
no MagickCore, and no MagickWand.
Carried From v0.4.0
- Hardened the one-command installer so it verifies releas...
IMX Developer Preview v0.10.0
IMX Release Notes
IMX v0.10.0 Real-Photo Reliability Slice
- Adds bounded read-only JPEG EXIF Orientation handling. Orientation values 1
through 8 normalize decoded pixels, andidentifyreports the oriented
dimensions. - Keeps metadata behavior narrow: EXIF is not preserved, written, or otherwise
interpreted beyond Orientation; ICC, XMP, density, thumbnails, timestamps,
GPS, and camera metadata remain unsupported. - Extends generated fixtures with deterministic JPEG Orientation 1-8 cases and
extends the differential corpus with ImageMagick-auto-orientoracle
evidence plus JPEG lossy metric rows. - Adds focused codec, CLI, malformed, install, package, release-archive, and
Homebrew formula smoke coverage for oriented JPEG input. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, tap-only Homebrew
distribution, no Homebrew/core, no crates.io, no Windows, and no hosted macOS
or iOS GitHub Actions.
IMX v0.9.0 JPEG Usability Slice
- Adds bounded Rust-native JPEG support for
.jpgand.jpegfiles plus exact
uppercaseJPEG:prefix handling.JPG:remains unsupported by design. - Supports JPEG identify/decode/encode for 8-bit grayscale and RGB streams.
identifyreportsformat=JPEG ... channels=GRAY|RGB depth=8. - Encodes JPEG deterministically at fixed quality 90 from normalized IMX
grayscale/RGB pixels. Non-opaque alpha inputs are rejected instead of silently
composited or dropped. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz,
differential-corpus, benchmark, install, package, archive-smoke, conformance,
and tap evidence to include JPEG. - Adds JPEG lossy oracle evidence with recorded RGB8 tolerance metrics rather
than byte-equality claims. - Applies a conservative 128 MiB JPEG decoded-pixel cap before decode
allocation to keep fuzz/resource-safety proof inside the existing 512 MiB
general image-buffer policy. - Keeps JPEG bounded: no progressive JPEG, CMYK/YCCK JPEG, 12-bit JPEG,
arithmetic-coded JPEG, lossless JPEG/JPEG-LS, JPEG 2000, JPEG XL, metadata
preservation, profiles, color management, orientation handling, or full
ImageMagick JPEG behavior. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.8.1 Release Hardening
- Tightens PNG diagnostics so malformed PNG identify paths report identify
failures and PNG decoder limit failures surface as image-size limit failures. - Adds regression coverage for grayscale-alpha PNG identify/decode/transcode and
for rejected PNG non-goals: interlacing, APNG,tRNS, and oversized rasters. - Updates generated conformance wording to include high-depth PNG evidence and
to distinguish pre-publish package smoke from post-publish archive smoke. - Documents and enforces the current Linux archive baseline: published v0.8.x
binary archives require glibc 2.34 or newer. - Hardens Ubuntu-only CI and tap proof with broader workflow path coverage,
explicit timeouts/concurrency, release tag/version validation, checked-out
tap formula install tests, and no-macOS tap formula guards.
IMX v0.8.0 PNG Raster Slice
- Adds Rust-native PNG support for a bounded raster surface: static
non-interlaced grayscale, RGB, RGBA, and grayscale-alpha PNG inputs with 8-bit
or 16-bit samples. - Adds
.pngdetection by PNG signature before extension fallback, exact
uppercasePNG:prefix handling, PNG identify, PNG transcodes to/from the
existing FARBFELD/QOI/PBM/PGM/PPM formats, and deterministic PNG same-format
rewrites. - Encodes PNG deterministically from the normalized IMX raster model. Source
compression/filter choices, ancillary chunks, comments, timestamps, gamma,
profiles, EXIF, and other metadata are not preserved. - Extends CLI, codec, golden, malformed, fuzz-smoke, cargo-fuzz, benchmark,
install, package, archive-smoke, differential-corpus, and conformance evidence
to include PNG. - Keeps PNG bounded: no APNG, indexed/palette PNG, low-bit PNG,
tRNS
color-key transparency, PNG color management/profile semantics, or full
ImageMagick PNG behavior. - Carries forward the v0.7.0 high-depth PPM behavior and the v0.6.0 exact
uppercase prefix behavior for FARBFELD, QOI, PBM, PGM, PNG, and PPM. - Keeps distribution boundaries unchanged: Linux x86_64 and Linux arm64 release
archives through Ubuntu-only hosted automation, generatedSHA256SUMS,
imx.rb, and conformance report assets, tap-only Homebrew distribution, no
crates.io, no Homebrew/core, no Windows, and no hosted macOS or iOS GitHub
Actions.
IMX v0.7.0 High-Depth PPM
- Adds high-depth PPM support for the existing PPM codec only: uppercase
P3
andP6withmaxval256..65535 identify and decode as RGB16BE. - Carries forward the v0.6.0 exact uppercase
FARBFELD:,QOI:,PBM:,
PGM:, andPPM:prefix behavior for identify, transcode, and same-format
rewrite paths. - Adds a core RGB16BE image representation so PPM16 can preserve precision when
transcoding to FARBFELD, PGM16, or same-format PPM output. - Encodes PPM deterministically as binary
P6:maxval 255for 8-bit sources
andmaxval 65535for 16-bit RGB/RGBA/GRAY sources. - Extends CLI, codec, golden, malformed, fuzz-smoke, benchmark, install,
package, archive-smoke, differential-corpus, and conformance evidence to cover
the PPM16 slice. - Keeps the boundary unchanged: no PNG/JPEG/TIFF/PAM/PFM/BMP, no stdin/stdout,
nomagickalias, no full ImageMagick CLI, no delegates, no MagickCore, no
MagickWand, no crates.io, no Homebrew/core, no Windows, and no hosted macOS or
iOS GitHub Actions. - Publishes Linux x86_64 and Linux arm64 release archives through Ubuntu-only
hosted automation, plus generatedSHA256SUMS,imx.rb, and conformance
report assets. The Homebrew tap update is generated from the published v0.7.0
SHA256SUMSand remains tap-only, not Homebrew/core.
IMX v0.6.0 Prefix Compatibility
- Adds exact uppercase
FARBFELD:,QOI:,PBM:,PGM:, andPPM:
prefixes for the existing identify and two-path transcode operands. - Prefixes are stripped before file IO and must match detected input format or
output path extension. Unknown prefixes, missing prefixed paths, mismatched
prefixes, and prefixed same-path writes fail witherror: .... - Extends the ImageMagick oracle corpus with prefixed identify cases and a
prefixed transcode ring across the existing FARBFELD/QOI/PBM/PGM/PPM surface. - Carries forward the v0.5.0 deterministic identify, cross-format transcode,
and same-format rewrite surface for FARBFELD, QOI, PBM, PGM, and PPM. - Publishes Linux x86_64 and Linux arm64 release archives through Ubuntu-only
hosted automation, plus generatedSHA256SUMS,imx.rb, and conformance
report assets. - The Homebrew tap update is generated from the published v0.6.0
SHA256SUMS
and remains tap-only, not Homebrew/core. - Keeps the boundary unchanged: no new image formats, no stdin/stdout
streaming, no full ImageMagick CLI, no delegates, no MagickCore, and no
MagickWand.
IMX v0.5.0 Developer Preview
This preview ships a standalone Rust image-tool binary named imx.
Supported Commands
imx --help
imx --version
imx identify <input.ff|input.farbfeld|input.qoi|input.pbm|input.pgm|input.ppm>
imx <input.ff|input.farbfeld|input.qoi|input.pbm|input.pgm|input.ppm> \
<output.ff|output.farbfeld|output.qoi|output.pbm|output.pgm|output.ppm>Supported Formats
- FARBFELD RGBA16BE decode/encode.
- QOI RGB8/RGBA8 decode/encode.
- PBM ASCII
P1and binaryP4bilevel decode; deterministic binaryP4
encode. - PGM ASCII
P2and binaryP5GRAY8/GRAY16BE decode; deterministic binary
P5encode. - PPM ASCII
P3and binaryP6RGB8 decode; deterministic binaryP6encode.
New In v0.5.0
- Added deterministic same-format rewrites for the existing FARBFELD, QOI,
PBM, PGM, and PPM slice.imx input.ppm output.ppmand the equivalent
same-format forms now decode and re-encode to deterministic output when the
input and output paths are different. - Expanded the ImageMagick oracle corpus from 20 cross-format transcodes to 25
directed transcodes, including same-format rewrites for all supported
formats. - Kept the release boundary unchanged: no new image formats, no format
prefixes, no stdin/stdout streaming, no full ImageMagick CLI, no delegates,
no MagickCore, and no MagickWand.
Carried From v0.4.0
- Hardened the one-command installer so it verifies release checksums, asserts
the installed binary version, and runs a small identify/transcode smoke test. - Carried forward release-archive smoke verification. For v0.5.0, hosted
archive smoke is Linux-only:x86_64-unknown-linux-gnuand
aarch64-unknown-linux-gnu. - Homebrew remains tap-only, not Homebrew/core. The v0.5.0 tap update is a
follow-up from the published releaseSHA256SUMS. - Added a generated conformance report (
CONFORMANCE_REPORT.md) sourced from
CI evidence. - Added a corpus differential report that identifies all supported fixture
formats and checks directed transcodes against ImageMagick decoded pixels. - Added scheduled cargo-fuzz with retained crash artifacts and stronger fuzz
summary metadata. - Added benchmark threshold summaries and a v0.4.0 baseline regression report
that records throughput ratios and enforces RSS budgets. - No new image formats are introduced in v0.5.0; this release is a bounded
compatibility milestone for the existing FARBFELD/QOI/PBM/PGM/PPM slice.
Known Limits
- PBM input source form is not preserved;
P1input re-encodes as binaryP4. - PBM comments, whitespace, and padding-bit value...