Ditherpunk 2 – beyond 1-bit

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • Sonar - Write Clean Java Code. Always.
  • SaaSHub - Software Alternatives and Reviews
  • marvin-framework

    Marvin Image Processing Framework provides features for processing images and videos in real-time.

    My understanding is that while "halftone" is an older term now, there was an in-between period where it meant any kind of dithering. Indeed, even on the page you linked you see people talking about Floyd-Steinberg and other kinds of dithering.

    Thanks for the link, although the best I could find was this[1] old Java file that's completely uncommented. I was hoping for some textual documentation.

    1: https://github.com/gabrielarchanjo/marvin-framework/blob/f50...

  • ESC-POS-.NET

    Efficient, Easy to Use Thermal Printing & POS (Windows/Linux/OSX, WiFi/BT/USB/Ethernet)

    My receipt printer library[0] uses dithering for images since the printers are black and white but fairly high resolution. It looks pretty decent [1], much better than a plain black and white conversion. I learned about dithering while implementing this library, and it’s a great technique! I originally implemented a black and white filter and then Floyd-steinberg dither natively in c# but then ended up using a library for it since we needed image transforms as well.

    [0]: https://github.com/lukevp/ESC-POS-.NET

    [1]: https://user-images.githubusercontent.com/59696671/106924665...

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • prism

    Colour management for Go (by mandykoh)

  • halftone

    Generate CMYK halftone images

    The StackOverflow answer above is referenced by various Python halftoning projects, which have documented or at least commented halftone code you may be interested in:

    https://github.com/ClayFlannigan/halftone

    https://github.com/philgyford/python-halftone

    I think grandparent post is right, that you’re looking for the terms like halftone, halftoning, digital halftoning, binary halftoning, and the like. These are the terms that show up in papers:

    https://www.sciencedirect.com/science/article/abs/pii/S10473...

    Text discussion at Wikipedia: https://en.wikipedia.org/wiki/Halftone

    Having worked in digital press, I recall the term of art for a higher quality technique that came after “halftone screening” or “digital halftone” was “stochastic screening”:

    https://en.wikipedia.org/wiki/Stochastic_screening

    This prevented the tell-tale circle effect (moiré or rosette patterns) of traditional screening. We used it to print high quality magazine photography. It also worked on Mac Plus for rendering photography as a better dither for black and white dots of irregular or non-geometric photography — which brings us full circle to dithering.

    Using terms from Photoshop of the day, Pattern Dither uses a uniform pattern to represent levels of gray. Diffusion Dither uses a random pattern to represent levels of gray. Halftone Screen uses preset patterns (round, diamond, ellipse, line, square or cross) at frequencies and angles that can be varied as well.

    That brought another term to mind, “stippling”:

    https://github.com/joeedh/BlueNoiseStippling

    Some more terms show up in this discussion on difference between halftoning and dithering:

    https://photo.stackexchange.com/questions/5779/what-is-the-d...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts