<commit_before>
3 Bit Dither
==============
Implemented by <NAME>

This particular dither uses the <a href="http://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering">Floyd-Steinberg algorithm</a> 
that goes pixel by pixel, rounds the individual R, G, and B channels to either 0x00 or 0xff, and then distributes those differences (which the algorithm calls the "quantization error") in differing amounts to pixels further down the line. This algorithm squeezes your palette down to just 8 colors, while still giving a decent approximation of the original image.

This runs completely client-side, using the FileReader and canvas APIs. If you have a somewhat modern browser, this should work. Also, you can right-click and save the result of the dithering.
<commit_msg>Added link to hosted version<commit_after>
3 Bit Dither
==============
Implemented by <NAME>


This particular dither uses the <a href="http://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering">Floyd-Steinberg algorithm</a> 
that goes pixel by pixel, rounds the individual R, G, and B channels to either 0x00 or 0xff, and then distributes those differences (which the algorithm calls the "quantization error") in differing amounts to pixels further down the line. This algorithm squeezes your palette down to just 8 colors, while still giving a decent approximation of the original image.

This runs completely client-side, using the FileReader and canvas APIs. If you have a somewhat modern browser, this should work. Also, you can right-click and save the result of the dithering.

You can use a functional version of this code <a href="http://mncaudill.github.com/3bitdither/">here</a>.
{'fraction_non_alphanumeric': 0.07793764988009592, 'fraction_numerical': 0.013788968824940047, 'mean_word_length': 5.113553113553113, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6732010', 'n_tokens_mistral': 451, 'n_tokens_neox': 424, 'n_words': 225}