How My Images Are Dithered

dead.garden

177 points by surprisetalk 3 days ago


zeraye - 3 minutes ago

A few years ago I made this fun little app https://dithering-sigma.vercel.app/. May be interesting for someone. Source code https://github.com/zeraye/dithering.

trentor - 5 hours ago

I was a rotogravure printer in another life, and this post made me a bit nostalgic. In intaglio printing you usually don't see these patterns because the electrostatic assist pulls the ink out of the cells, and the colors blend together more. It's more akin to a developed photo. I mainly remember them from having to do offset printing for the intermediate exam during my apprenticeship.

Our paper was about 3.5 meters wide, and a single roll length was 2–3 kilometers which ran for 20-30 minutes. The process delivered high quality at high speed, so we printed titles like Playboy and the IKEA catalogue in every language (for a language change we only had to swap the black cylinders, since the data was optimized so the text was mostly single color black). A print run of the IKEA catalogue, around 40 million copies, took about two months. It was brain numbing but also really zen. I miss it sometimes.

rahimnathwani - 6 hours ago

If you're doing halftoning with the intent to get custom DTF (direct to film) prints for t shirts, you might find this tool helpful:

https://tools.encona.com/dtf

It aims to 'knock out' some areas of the image: make them transparent in the digital image so those areas are not part of the final film. This means less of the surface of the t shirt has film on it, allowing it to be breathable and flexible.

I got some DTF prints made before I knew you were meant to do this. The tutorials online required a lot of steps so I made the above for next time. Not tested for real yet.

ReactiveJelly - 5 hours ago

> Dithering can reduce file size

Yeah, if you're using lossless compression like PNG or GIF, adding a lossy step to reduce the number of colors in the palette can help.

If you're compressing photos, you should use JPEG or WebP.

Anecdotally, JPEG usually beats dithering, and WebP always does.

It's fine to dither images but please please admit that you're doing it for the aesthetic. WebP has very broad browser support and absolutely blows dithering out of the water for compression. You are not going to beat years of research and tuning with "use fewer colors".

I remember a YouTube video about "How we did the impossible and got full-motion video for this Sonic game on a system that couldn't do FMVs", and the answer was like, "Well, we used a low resolution, and then we reduced the color palette, and then we cut the frame rate, and then we did interlacing." None of that's impossible! That's like saying you built the Pyramid at Giza using only a bucket of Lego bricks! It's not the same pyramid! Anyone can use a lower resolution! It takes effort and teamwork to come up with a codec that actually compresses data without artifacts!

imhoguy - 7 minutes ago

Up! Very cool site, creative, slopless and with that 90/00s vibe I miss :)

timnetworks - 20 minutes ago

Is nobody going to mention anything about the fact that one of the friends at the restaurant has no _head_ ?

xnx - 6 hours ago

Title here is missing "How" as in "How My Images Are Dithered"

Retr0id - 7 hours ago

I suppose it is a type of dithering, but really this is Halftoning

effnorwood - 11 minutes ago

slowly. then all at once.

AyanamiKaine - 4 hours ago

Ohhhh that is so cool, but I agree with the others its more halftoning. When you want to dither/pixelate an image you can use Image-to-Pixel [0].

[0]https://tezumie.github.io/Image-to-Pixel/

ectoloph - 4 hours ago

Didder[0] is a good tool for dithering. I use it to pre-process images for the 6-color e-ink displays.

You can go down a rabbit hole of dithering algorithms too, like Floyd Steinberg[1]

[0] https://github.com/makew0rld/didder [1] https://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dither...

meindnoch - 6 hours ago

Every image should be dithered below 10 bits/component to prevent banding artifacts.

willmeyers - 6 hours ago

Cool effect! It feels a bit like a deep-fried meme to me, but that might just be me!

I tried doing something similar a couple of years ago and gave up after running into the exact same issues in the post. It's really difficult to replicate proper halftoning on a computer screen without getting moiré patterns and weird artifacts because of PPI, aliasing, and other stuff. Beyond that, print and screens are just fundamentally different ways of rendering things.

olivierestsage - 3 hours ago

Recommended: https://doodad.dev/dither-me-this/

ValdikSS - 6 hours ago

??? This is halftoning, not dithering

AndrewStephens - 7 hours ago

Very nice results, I really like the way it looks like a printed page. Image processing is addictive - once you start playing around it is hard to stop.

Dwedit - 6 hours ago

Speaking of which, are there any good ways to undither images? Things like GIMP FFT are not perfectly reversible.

jcynix - 4 hours ago

Hmm, that gives me an idea: dithering (of generally "mogrifying") my images might make them less palatable for those pesky AIs roaming my web server …

tiffanyh - 4 hours ago

If you like this, you might also like:

https://news.ycombinator.com/item?id=48009879

rrr_oh_man - 5 hours ago

Counterpoint: https://news.ycombinator.com/item?id=29227606

gausswho - 6 hours ago

I vaguely recall stumbling across a site years ago that could do something like this in the browser, with various bits 'n bobs you could poke at. Can't find it now.

hnl68yz0go - 3 hours ago

This framing is spot on

- 3 hours ago
[deleted]
next_xibalba - 4 hours ago

It tickles me greatly how much HN’ers are fascinated by dithering. It seems like a few times per year a post about dithering makes the front page.

ipunchghosts - 6 hours ago

Why is this not a typical data augmentation method for training deep networks? It would allow the networks to learn invariants that's align with humans. Currently, I suppose none of these dithered images would be correctly classified.

chronogate_op - an hour ago

[flagged]