This tool edits images in the frequency domain. It resamples your image to NΓN and transforms each RGB channel with a 2D FFT, computed in WebAssembly in your browser. Paint on the image, and its spectrum changes. Paint on the spectrum, and the inverse FFT rebuilds the image. The difference view amplifies the gap between the two left panels; use it to find hidden marks.
Both views put frequency zero at the center. Frequency rises toward the edges: smooth gradients live near the middle, fine detail and sharp edges far out. An edge in the image spreads energy across the spectrum, perpendicular to the edge.
Magnitude shows the strength of each frequency, log-scaled, per RGB channel. Phase shows each frequency's alignment as gray from βΟ to Ο. It looks like noise, but it carries most of the image's structure. A real image has conjugate symmetry: each point in its spectrum has a twin opposite the center. With conjugate mirror on, your edits paint both twins.
The spectrum normally shows your intended edit, computed in floating point. The final image holds only 8-bit pixels, so faint edits can fall below one gray level and strong ones can clip. Check realized to see the spectrum of the final image instead β what a saved copy actually keeps.
| Panel | Tool | Effect |
|---|---|---|
| image | ποΈ Draw | paints pixels in the chosen color |
| βοΈ Brighten | adds light | |
| π Darken | removes light | |
| π€ Text / π Emoji | stamps the text or emoji where you click | |
| π©Ή Restore | brushes edits away, back to the original pixels | |
| magnitude | π§½ Attenuate | scales magnitudes toward zero β the outer ring blurs the image, the center keeps only edges |
| π’ Boost | amplifies the frequencies already there | |
| ποΈ Draw / π€ Text / π Emoji | adds frequency content in the tool's color; each painted bin becomes a sinusoidal grating in the image. Strength is dB relative to what naturally lives at that frequency: 0 dB blends in, + stands out, β hides. The text popover's attenuate option removes the color's channels instead | |
| π©Ή Restore | reverts painted bins | |
| phase | π Shift + / β | rotates the phase of the frequencies you paint, which smears structure while the magnitude view barely changes |
| π©Ή Restore | reverts painted bins |
size and strength apply to every tool; for additive spectrum painting the strength readout switches to dB. Undo is Ctrl+Z. Close this with ? or Esc.