Film Negative Inverter
Browser-based C-41 color negative inversion and mask removal.Film Emulsion Profiles
Tonal curves and gamma parameters for common color and B&W stocks
Wide dynamic range with gentle highlight roll-off and natural skin tone rendition.
Warm golden highlights and punchy primary color saturation suited for daylight exposures.
Clean emerald greens, cool sky tones, and crisp edge contrast.
Traditional silver halide monochrome with dense shadow separation and rich midtone gray gradient.
Color Science & Pipeline
Logarithmic mask subtraction, 40×40 outlier-filtered sampling, and GPU tone mapping
LOGARITHMIC MASK SUBTRACTION EQUATION
Color negative film emulsion attenuates transmission exponentially according to optical density: D = log₁₀(1 / T). Linear inversion (255 - X) fails because the orange mask dyes (colored couplers) skew the green and blue channels. Inverting in optical density space eliminates color casts:
ZERO-SERVER SECURITY
All rendering runs on your device's local GPU using WebGL shaders. No imagery is ever transmitted to remote servers.
Logarithmic Orange Mask Subtraction
Negatives absorb light exponentially following the Beer-Lambert law. Dividing pixel values by the base mask in optical density space eliminates cyan-blue color casts without clipping shadows.
40×40 Precision Sampling
Samples an area of 40×40 pixels with outlier rejection to smooth out film grain noise and calculate an accurate reference white balance.
High-Resolution Macro Scans
Handles up to 48MP camera digitizations (macro lens DSLR/mirrorless captures) at native texture resolution.
100% Client-Side Privacy
All rendering runs on your device's local GPU using WebGL shaders. No imagery is ever transmitted to remote servers.
Workflow
Four steps from negative capture to positive export
Load Negative Image or Camera
Position your film over a uniform backlight or drag & drop a high-resolution raw scan.
Sample Base Orange Mask
Click 'Sample Mask' and pick an unexposed film border between frames to register the base color.
Select Emulsion & Tune
Choose a film preset and refine gamma, black point, and curve exponent in real-time.
Export Positive Image
Click 'Export Positive' to download the processed full-resolution JPEG.
Technical FAQ
Fundamentals of analog color negative digitization
Why does a simple RGB color inversion (255 - X) fail on color negatives?
C-41 color negative films contain colored couplers that form an integral orange mask to compensate for imperfect dye absorption in the green and blue sensitive layers. Simple linear inversion produces heavy cyan and blue color casts with severely clipped shadows. True inversion requires dividing by the mask in logarithmic density space.
What is the recommended lighting setup for camera scanning?
Use a diffused light source with a Color Rendering Index (CRI) of 95 or higher (such as dedicated CRI 95+ LED panels or a high-resolution tablet screen set to full white). Keep camera ISO at base level (ISO 100) and shoot in a dark room to avoid ambient surface reflections.
Are my film scans uploaded to any server?
No. The entire inversion pipeline is compiled into WebGL fragment shaders and runs locally on your browser's GPU. Nothing leaves your machine.