About Negative Viewer

By LexLast updated 2026-04-29

Why this exists

Most people who own film negatives don't own a film scanner. Dedicated negative scanners cost hundreds of dollars, take minutes per frame, and sit unused most of the year. Meanwhile, the device in your pocket has a camera that is more than capable of previewing a negative — what it lacks is the software to invert the image in real time.

Negative Viewer is that software, written as a small web app so that you don't have to install anything. Hold a negative against any backlight, point your phone at it, and the positive image appears on the screen within a frame.

How it works

The tool requests permission to use your device camera through the standard Web getUserMedia API. Each video frame is drawn to an HTML Canvas, every pixel's red, green, and blue channels are subtracted from 255 (a standard color inversion), and the result is drawn back to the screen at the camera's native frame rate. There is no neural network, no cloud processing, and no upload. The full source is small and lives in this site's repository.

Privacy commitments

  • No upload of your camera feed. Pixels are processed in your browser only. The site has no server endpoint that accepts video or photo data.
  • No account, no email, no fingerprinting. The only first-party data we collect is anonymous Google Analytics page-view counts, which we use to decide what to improve.
  • Ads, declared. The site shows Google AdSense ads. AdSense uses cookies — you can opt out at Google Ad Settings.

Tech stack

  • Next.js 15 with the App Router for static-generated pages and a single client component for the live viewer.
  • React 19 for the UI.
  • Web APIs: getUserMedia for camera access, Canvas 2D for pixel-level inversion, requestAnimationFrame for the render loop.
  • Vercel for hosting and edge delivery.

Who built it

Built and maintained by Lex, a developer at neoanaloglab.com. The project started as a tool for sorting through a box of family negatives and grew into a public site after a friend asked, "could you put that online?"

Roadmap

  • An optional in-browser orange-mask remover for color negatives.
  • Crop and rotate before saving, so the PNG is closer to ready-to-share.
  • An EXIF-stripping export option for sensitive archival work.

If you have a feature you want to see, the fastest path is to open an issue on the GitHub repository.