HN Debrief

How My Images Are Dithered

  • Graphics
  • Web
  • Print
  • Developer Tools

The post is a practical writeup on turning ordinary digital photos into images that resemble printed matter. It mixes two related ideas. One is halftoning, where varying dot size or density simulates continuous tone the way magazines and newspapers do. The other is dithering more broadly, where limited colors are arranged spatially to fake gradients and texture. The author is chasing a specific look, not claiming a new codec.

Treat this as a rendering and design technique, not an image optimization trick. If you work with print, low-color displays, or stylized web graphics, the thread points to the real operational questions: halftone vs error diffusion, banding control, and output-specific tooling.

Discussion mood

Positive and playful about the visuals, with a strong undercurrent of pedantry from people who know print and image processing. The main pushback was not that the effect is bad, but that the terminology and any file-size rationale should be tighter.

Key insights

  1. 01

    Rotogravure does not show the same dots

    Rotogravure printing produces a different visual result from offset-style halftones, because electrostatic assist helps pull ink from the cells and blend colors more smoothly. That changes what "printed" looks like in practice, so copying a familiar magazine-dot pattern is only one slice of print aesthetics rather than a universal print look.

    If you are mimicking print in software, pick a specific printing process as your reference instead of aiming for a generic "printed" feel. The artifact you simulate should match the medium you want users to recognize.

      Attribution:
    • trentor #1
    • inigyou #1
  2. 02

    Bit-depth conversion is where dithering earns its keep

    Reducing images from higher precision to 8 bits per color channel is where dithering stops being a style choice and becomes basic craft. Without it, gradients band, prints can fail in expensive ways, and even mainstream tools behave inconsistently. One concrete warning was that Photoshop handles some 16-to-8-bit conversions correctly, but its "Export As → PNG" 8-bit path can still skip dithering and introduce visible artifacts.

    Audit every export path that reduces color precision, not just your editing workflow. If your product generates gradients, screenshots, or print assets, test the final exporter on real displays and paper rather than assuming the tool did the right thing.

  3. 03

    Dithering usually fights compression

    For modern image compression, added dot structure acts like noise and makes encoders work harder. JPEG and WebP generally win on photos, while PNG can swing either way because dither destroys the large flat regions that lossless compression loves. The result is that palette reduction can occasionally help, but there is no general "dither for smaller files" rule you can count on.

    Benchmark actual outputs before building any optimization story around reduced palettes or halftone effects. If bandwidth is the goal, start with JPEG or WebP settings and treat dithered variants as a separate artistic asset class.

      Attribution:
    • ReactiveJelly #1
    • customguy #1
    • CharlesW #1
    • zahlman #1
    • dahart #1
  4. 04

    The useful tooling is very output-specific

    The most actionable tools shared were not generic image filters but pipelines tuned for concrete media: Didder for six-color e-ink, a DTF helper that knocks out film coverage on t-shirts, browser toys for trying Floyd-Steinberg and related algorithms, and small web apps for quick experiments. That reinforces that dithering choices depend on whether you are targeting print, textiles, e-ink, or stylized web art.

    Choose tools based on the final substrate, not the name of the algorithm. A workflow that looks great on a monitor can fail on e-ink, fabric, or paper if it ignores the physical constraints of that medium.

      Attribution:
    • ectoloph #1
    • bthallplz #1
    • zeraye #1
    • AyanamiKaine #1
    • olivierestsage #1
    • rahimnathwani #1
  5. 05

    Undoing halftones is its own problem

    Recovering smooth images from printed-dot patterns is not just "reverse dithering". For halftoned scans the right term is descreening, and the task is inherently lossy because the original tone information was thrown away or remapped into spatial structure. FFT tricks help inspect frequency content, but they are not a clean inverse, which is why commenters pointed toward dedicated descreening and denoising approaches instead.

    If your pipeline includes scanning printed material, plan a descreening step explicitly rather than assuming general image cleanup will fix it. Preserve originals before halftoning because reconstruction later will always be approximate.

      Attribution:
    • Dwedit #1
    • qingcharles #1
    • dahart #1 #2

Against the grain

  1. 01

    Keep higher bit depth as long as possible

    For gradient quality, the better move is often to avoid 8-bit output until the last mile instead of baking dithering into assets early. Higher-precision images compress well with modern lossy codecs, and leaving the final quantization to the display stack or export stage avoids locking visible noise into the file forever.

    Store and edit masters at 10 or 12 bits when you can. Add dithering only at the delivery step that truly requires lower precision.

      Attribution:
    • adgjlsfhk1 #1
    • meindnoch #1
  2. 02

    Dither augmentation is not obviously useful for AI

    The idea that training on dithered images would teach broader human-like invariants did not land cleanly. The pushback was that models learn whatever distortions they see often enough, and if halftoned inputs are rare at inference time, you mostly teach robustness to a niche corruption rather than gaining some general anti-texture intelligence.

    Do not add exotic augmentations to model training on intuition alone. Match augmentations to real deployment conditions and verify whether they improve the failure modes you actually care about.

      Attribution:
    • ipunchghosts #1 #2 #3
    • dahart #1
    • dist-epoch #1

In plain english

8 bits per color channel
A common image precision where red, green, and blue each have 256 possible values from 0 to 255.
bit depth
The number of bits used to represent color or tone values, which determines how many distinct levels an image can store.
descreening
A process for reducing or removing visible halftone dot patterns from scanned printed images.
dithering
A graphics technique that uses patterns of black and white pixels to fake shades of gray or smoother gradients on limited displays.
DTF
Direct to film, a garment-printing method where a design is printed onto a transfer film and then applied to fabric.
e-ink
Electronic ink display technology that mimics paper and is often used in e-readers and low-power signs.
FFT
Fast Fourier Transform, a mathematical method for analyzing an image or signal in terms of its frequency content.
Floyd-Steinberg
A classic error-diffusion dithering algorithm that spreads quantization error to neighboring pixels to create smoother-looking images.
halftoning
A way to simulate shades and gradients using patterns of dots or other small marks, commonly used in printing.
JPEG
Joint Photographic Experts Group image format, a widely used lossy compression format for photos.
moiré
An unwanted wavy or interference pattern that appears when repeating dot or line patterns overlap badly.
offset printing
A common printing process where inked images are transferred from a plate to a rubber blanket and then onto paper.
PNG
Portable Network Graphics, a lossless image file format often used for graphics, screenshots, and images needing transparency.
rotogravure
A high-speed commercial printing process that uses engraved cells in cylinders to transfer ink to paper.
WebP
A modern image format from Google that supports both lossy and lossless compression and often produces smaller files than older formats.

Reference links

Practical tools

Print and output-specific workflows

  • Encona DTF knockout tool
    Tool for direct-to-film shirt printing that removes some image areas to reduce film coverage and improve breathability.
  • descreen.net
    Suggested tool for descreening scanned halftoned images.
  • Rasterbator example album
    Example of enlarging an image into halftone-like dots across many printed pages for wall art.

Background references

Talks and research