Changelog

1.0.0

26 July 2026

Pipeline

  • New custom image pipeline: no ImageMagick or other image-processing dependencies required
  • Parallel conversion across CPU cores
  • Direct buffer path to processing engine, no intermediate TIFF files
  • Around 50x faster than legacy negfix8 + ImageMagick pipeline
  • Automatic scan-size and rotation detection for standard 35mm, half-frame, XPan, panoramic, and other non-standard frame sizes

Inversion

  • Custom inversion engine replaces negfix8 (no more ImageMagick dependency)
  • Roll-level analysis: computes a shared color profile across all frames for consistent results
  • Automatic outlier frame rejection: backlit or unusual frames are excluded from the shared profile so they don't skew the rest of the roll
  • Percentile-based pixel rejection: ignores brightest/darkest pixels (default 0.1%) to prevent dust and specular highlights from affecting the profile
  • Border exclusion: ignores the outer edge (default 2%) so framing or minor sprocket presence doesn't skew the color analysis
  • Independent shadow/highlight clipping: --clip-black and --clip-white for fine control over contrast stretch
  • Clipping risk detection: warns when narrow-density negatives may clip too aggressively, with suggested alternative settings
  • LUT-based per-pixel inversion: ~26x faster than per-pixel Math.pow()
  • Per-image balancing mode: optional per-frame profiling via --per-image-balancing
  • Reusable inversion profiles: save and apply shared color analysis with --save-profile and --profile
  • Output gamma control via --output-gamma
  • Color-space controls for input, working, and output primaries: sRGB, Adobe RGB, Rec.2020, ProPhoto, and ACEScg

CLI & Configuration

  • Unified --mode system for negative, raw, E-6, black and white, and RGB black and white output
  • Multiple modes can run in one pass, for example --mode negative,raw
  • --mode raw writes uninverted linear 16-bit TIFFs for external finishing tools such as Negative Lab Pro or Grain2Pixel
  • macOS Finder Quick Action (--install-quick-action)
  • Tells you when a new version is available
  • Output directory auto-increment to avoid overwrites
  • --dir-out with INPUT_DIR placeholder support
  • Global config file support (~/.pprc/configs/default.json)
  • Last-run config saved automatically: copy to reuse settings

License

0.x (Legacy)

Earlier releases between 2016 and 2026

  • Inversion & balancing via third party negfix8 script (ImageMagick-based), each file inverted individually
  • Basic planar raw to TIFF conversion
  • Initial CLI