Photo Effects Lab
The Photo Effects Lab is a free, in-browser effect-stacking editor for the looks that one-shot filter apps can only fake: real halftone dot screens, error-diffusion dithering, riso and newsprint print treatments, pixel sorting, glitch displacement, ASCII rendering, stipple, crosshatch, scanlines, and chromatic aberration. Instead of a single baked filter, you build a stack — every effect is a layer with its own controls, opacity, and blend mode, applied top to bottom, and you can reorder, disable, or remove any layer at any time. Twelve presets give a starting point in one click, and every preset is itself an ordinary stack you can open up and modify. Your photo never leaves your device: the file is read into an HTML canvas, every pixel operation runs locally, and the exports are generated on your own machine.
Why an Effect Stack Beats One-Shot Filters
A filter is a verdict; a stack is a recipe. Because each layer receives the output of everything above it, the same set of effects produces wildly different results in different orders — a duotone followed by a halftone prints colored dots, while a halftone followed by a duotone recolors a dot screen. Per-layer opacity lets you dial an aggressive effect back to a whisper, and the eight blend modes (normal, multiply, screen, overlay, soft light, difference, lighten, darken) decide how a layer mixes with what is underneath, which is how grain ends up textural instead of muddy. A master intensity slider blends the entire finished stack against the untouched original, so a hold-to-compare check and a global fade are always one gesture away. The randomize button composes a new stack from scratch when you want to be surprised, and the seed controls on glitch, stipple, and grain make every random result reproducible rather than a one-time accident.
A Tour of the Seventeen Effects
The print family covers halftone (a rotatable dot screen with ink and paper colors), dither (Floyd–Steinberg, Atkinson, and ordered Bayer methods with two to eight levels, in grayscale or per-channel RGB), stipple, crosshatch, threshold, and duotone with an optional three-color tritone mode that doubles as a thermal-camera false-color map. The glitch family covers pixel sort (directional brightness sorting with a low/high threshold window and a max-run cap), slice glitch with channel shifting, chromatic aberration with a movable focal point, scanlines, and mosaic pixelation. Rounding things out are a full color-adjust layer (brightness, contrast, saturation, hue rotation, posterize, invert), Sobel edge detection with custom edge and background colors, film and digital grain, vignette, a solid color overlay for blend-mode tinting, and an ASCII renderer that redraws the image as a character ramp, either monochrome or sampling the photo's own colors. If you want a conventional photographic color grade rather than a stylized treatment, the Cinematic Looks tool is the better instrument — it exports a real .cube LUT — and the two combine well: grade there, stylize here.
Print Looks, Glitch Looks, and the Twelve Presets
The presets span both families. Zine Riso layers a two-ink duotone, a coarse halftone, overlay grain, and a small chromatic offset that fakes a duplicator's misregistration. Newsprint is a desaturated, fine-cell 45-degree halftone on warm paper. 1-Bit Pixel is chunky two-level Floyd–Steinberg dithering; Studio Duotone is the clean editorial two-color treatment; 35mm Night adds warm contrast, heavy grain, and a vignette. Blueprint runs edge detection as pale linework on drafting blue, Green Terminal renders the photo as phosphor-green ASCII, and Thermal Scan uses the tritone map from deep blue through magenta to yellow. On the glitch side, Neon Synth combines hue rotation, chromatic fringing, and scanlines; Signal Lost chains slice glitch into vertical pixel sorting; Ink Press posterizes the colors and multiplies a heavy edge pass back over them; and Acid Drip pushes hue and saturation into a long-run pixel sort. Each preset is a starting stack, not a locked result — selecting one populates the stack panel where every parameter stays editable, and the Export JSON button saves any stack you build as a portable preset file you can re-import later or share. Designers building brand-flavored versions of these treatments can pull exact colors with the Color Palette from Image extractor and feed them into the duotone and halftone ink fields.
True Vector Export — and Where It Honestly Stops
Halftone, stipple, and crosshatch are geometric at heart — circles and line strokes — so the Lab can export them as a genuine SVG rather than a raster screenshot: infinitely scalable, editable shape by shape in Illustrator, Figma, or Inkscape, and ideal for screen printing and pen plotting. The SVG button unlocks whenever one of those three is the last enabled layer; the layers beneath it are rendered as pixels first and the finisher is regenerated as real vector geometry from that result. The honest limitation is that this is where vectors end: dither, glitch, pixel sort, grain, and the other pixel-level effects have no meaningful geometric form, so stacks that end in them export as PNG only. Likewise, the glitch layer is a still-image simulation — slice displacement and channel shifting — not true video datamoshing, which is a codec artifact that does not exist for a single frame. PNG export always re-renders the full stack from your original file at up to 3000 pixels on the long edge, with spatial settings like cell size scaled so the output matches the preview; the heaviest effects can take a few seconds at that size. For tracing an entire photograph into vector outlines rather than a dot screen, the Image to SVG Converter is the right tool, and finished raster exports can be squeezed further with the Image Compressor before they ship. And when the destination calls for motion rather than a still, the Dot Wave Animator takes a dotted aesthetic one step further — it resamples an icon or logo into a dot grid and animates a travelling wave through it, exporting a self-playing animated SVG.
Frequently Asked Questions
Is the image processed on a server or in my browser?
Entirely in your browser. The file is read locally into an HTML canvas, every effect is computed on your own device, and the PNG, SVG, and JSON exports are generated on your machine. Nothing is transmitted to our servers or any third party, there is no account, and the tool keeps working offline once the page has loaded.
What does the effect stack order actually change?
Effects apply top to bottom, and each one receives the result of everything above it, so order changes the picture substantially. Halftone placed after duotone samples the two-color image and prints colored dots; halftone placed first gets dithered into dots that the duotone then recolors. Pixel sort before glitch smears the original photo and then displaces the smears; reversed, it sorts the already-glitched slices. Use the up and down arrows on each layer to experiment — it is often the fastest way to find a look.
Which effects can be exported as SVG, and why not all of them?
Halftone, stipple, and crosshatch export as true vectors, because their output is geometry — circles and line strokes — that the tool can write directly into an SVG file. The SVG button activates when one of those three is the last enabled layer in your stack: everything beneath it is rendered as pixels first, and the finisher is then regenerated as real vector shapes from that result. Pixel-level effects like dither, glitch, or pixel sort have no geometric representation, so stacks ending in those export as PNG only.
How do I recreate a risograph or newsprint print look?
Both are one click away as presets — Zine Riso and Newsprint — and both are ordinary stacks you can open up and edit. The riso recipe is a two-color duotone in a classic riso ink pair, a coarse halftone on top, visible grain, and a small chromatic offset to fake the misregistration of a real duplicator. Newsprint is a desaturation pass followed by a fine-cell angled halftone and light paper grain. Swap the duotone colors to rebuild either one in your own brand palette.
What does the seed control do on the glitch, stipple, and grain effects?
Those three effects involve randomness — which slices shift, where dots land, what the grain pattern is. The seed pins that randomness to a number, so the same seed always produces the identical result, which means your export will match your preview exactly and a saved stack will reproduce on another day. Press shuffle to roll a new variation; if you like seed 41 better than seed 7, it will look that way forever.
Why does pixel sorting only smear some parts of my photo?
That is the threshold range working as intended. Pixel sort only rearranges runs of pixels whose brightness falls between the low and high thresholds, which is what produces the signature look of intact shapes dissolving into streaks. Widen the range toward 0 and 1 and almost the whole image sorts into long smears; narrow it and only midtones melt. The max run slider caps how long a single streak can grow.
Can I save a stack and reuse it on another image later?
Yes. The Export JSON button downloads your entire stack — every effect, parameter, seed, opacity, blend mode, and the master intensity — as a small text file. Import it in any later session, or in a different browser, and the exact stack rebuilds and applies to whatever image is loaded. It is a portable preset format you can share with a teammate.
Is there a resolution limit, and what resolution does the export use?
The live preview is computed at a reduced working size, capped near 1100 pixels on the long edge, so the sliders stay responsive. PNG export re-renders the whole stack from your original file at up to 3000 pixels on the long edge, with cell sizes and other spatial settings scaled to match the preview's look. Heavier effects — pixel sort especially — can take a few seconds at full export resolution; that is normal and the button shows progress.
Built by Derek Giordano · Part of Ultimate Design Tools · Privacy · Terms