logoalt Hacker News

How My Images Are Dithered

152 pointsby surprisetalklast Wednesday at 1:00 PM60 commentsview on HN

Comments

trentortoday at 2:48 PM

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.

ReactiveJellytoday at 2:33 PM

> 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!

show 2 replies
rahimnathwanitoday at 1:48 PM

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.

show 1 reply
xnxtoday at 1:56 PM

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

show 1 reply
Retr0idtoday at 1:04 PM

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

show 1 reply
AyanamiKainetoday at 3:45 PM

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/

ectolophtoday at 4:22 PM

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...

meindnochtoday at 1:38 PM

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

show 3 replies
willmeyerstoday at 2:16 PM

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.

jcynixtoday at 4:18 PM

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 …

ValdikSStoday at 1:32 PM

??? This is halftoning, not dithering

show 3 replies
AndrewStephenstoday at 1:24 PM

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.

Dwedittoday at 2:16 PM

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

show 3 replies
tiffanyhtoday at 3:30 PM

If you like this, you might also like:

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

rrr_oh_mantoday at 3:06 PM

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

show 1 reply
hnl68yz0gotoday at 5:23 PM

This framing is spot on

gausswhotoday at 2:15 PM

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.

LoganDarktoday at 5:29 PM

800px in width ought to be enough for anybody

next_xibalbatoday at 3:55 PM

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.

ipunchghoststoday at 2:01 PM

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.

show 2 replies