{"id":20325654,"url":"https://github.com/tessarin/dither","last_synced_at":"2026-03-02T12:40:56.652Z","repository":{"id":259419595,"uuid":"99968509","full_name":"tessarin/dither","owner":"tessarin","description":"Small image utility featuring an implementation of the median-cut color quantization algorithm and Floyd-Steinberg dithering in C.","archived":false,"fork":false,"pushed_at":"2017-10-09T19:56:55.000Z","size":408,"stargazers_count":48,"open_issues_count":2,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-25T15:50:18.226Z","etag":null,"topics":["c","color-quantization","dithering","dithering-algorithms","image-processing","libpng","png","ppm-format"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tessarin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-10T22:06:28.000Z","updated_at":"2025-03-04T22:04:15.000Z","dependencies_parsed_at":"2024-10-25T12:36:59.303Z","dependency_job_id":null,"html_url":"https://github.com/tessarin/dither","commit_stats":null,"previous_names":["tessarin/dither"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tessarin%2Fdither","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tessarin%2Fdither/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tessarin%2Fdither/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tessarin%2Fdither/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tessarin","download_url":"https://codeload.github.com/tessarin/dither/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248473111,"owners_count":21109628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","color-quantization","dithering","dithering-algorithms","image-processing","libpng","png","ppm-format"],"created_at":"2024-11-14T19:41:03.080Z","updated_at":"2026-03-02T12:40:56.574Z","avatar_url":"https://github.com/tessarin.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dither - Color Quantization and Dithering\n\nThis is a small program dedicated to reducing the number of colors in an\nimage. It operates with files in PNG or binary PPM format ([Portable\nPixMap][ppm]), and features automatic palette generation (using a median-cut\nalgorithm) and dithering implemented with the Floyd-Steinberg method.\n\n## Installing\n\n#### On macOS with [Homebrew][brw]\n\n    $ brew install tessarin/core/dither\n\n#### Manual Installation\n\nFirst, install [`libpng`][lpg]. Running `make` will then compile the program\nand generate the documentation (requires Perl). To install, move the\nexecutable and manual files to appropriate directories in your system.\n\n    $ make\n    $ mv dither ~/bin\n    $ mv dither.1 ~/man/man1\n\nIndividual targets can also be specified to only compile the program or to\ngenerate the manual page:\n\n    $ make dither\n    $ make doc\n\n## Usage\n\n    $ dither [-p name.size] [-dv] input output\n\nDetailed information about the program options are included in the\n[manual][man].\n\n## Features\n\nBy default, `dither` will use a 3-bit RGB palette and dithering when\nprocessing an image. Other possible palettes include:\n\n - Grayscale of any given size\n - Automatic, generated with the given size using a median-cut quantization\n   algorithm\n - Custom palette\n\nDithering on the final image can be disabled and the program can also be used\njust to generate a palette.\n\n## Samples\n\n#### Automatic Palette\n\n    $ dither -p auto.32 bird-original.png bird-auto.32.png\n\n![original bird](samples/bird-original.png)\n![generated bird](samples/bird-auto.32.png)\n\n#### 1-bit Black \u0026 White\n\n    $ dither -p bw flower-original.png flower-bw.png\n\n![original flower](samples/flower-original.png)\n![generated flower](samples/flower-bw.png)\n\n#### 50% Gray Test\n\nGenerates a perfect checkerboard pattern.\n\n    $ dither -p bw gray-original.png gray-dithered.png\n\n![original gray](samples/gray-original.png)\n![dithered gray](samples/gray-dithered.png)\n\n [ppm]: https://en.wikipedia.org/wiki/Netpbm_format\n [brw]: https://brew.sh\n [lpg]: http://www.libpng.org/pub/png/libpng.html\n [man]: dither.pod\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftessarin%2Fdither","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftessarin%2Fdither","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftessarin%2Fdither/lists"}