{"id":20471294,"url":"https://github.com/robertkist/libdither","last_synced_at":"2025-04-13T10:58:07.078Z","repository":{"id":166733219,"uuid":"528391501","full_name":"robertkist/libdither","owner":"robertkist","description":"A C library for black-and-white image dithering","archived":false,"fork":false,"pushed_at":"2025-03-21T09:06:17.000Z","size":2344,"stargazers_count":71,"open_issues_count":2,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-27T02:11:52.331Z","etag":null,"topics":["apple-silicon-support","c","cpp","dithering","dithering-algorithms","dithering-methods","linux","macos","windows"],"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/robertkist.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":"2022-08-24T11:24:50.000Z","updated_at":"2025-03-23T22:23:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac7e17df-ac41-42ea-977f-feebf10e6123","html_url":"https://github.com/robertkist/libdither","commit_stats":null,"previous_names":["robertkist/libdither"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertkist%2Flibdither","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertkist%2Flibdither/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertkist%2Flibdither/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertkist%2Flibdither/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robertkist","download_url":"https://codeload.github.com/robertkist/libdither/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248703196,"owners_count":21148117,"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":["apple-silicon-support","c","cpp","dithering","dithering-algorithms","dithering-methods","linux","macos","windows"],"created_at":"2024-11-15T14:15:40.731Z","updated_at":"2025-04-13T10:58:07.048Z","avatar_url":"https://github.com/robertkist.png","language":"C","readme":"# Libdither\n\nOverview\n--------\nLibdither is a library for black-and-white image dithering, written in C (ANSI C99 standard).\nLibdither has no external dependencies and should compile easily on most current systems.\n\nDithering algorithms:\n\n* Grid dithering\n* Ordered dithering, incl. Blue Noise dithering\n* Error diffusion dithering\n* Variable error diffusion (Ostromoukhov, Zhou Fang)\n* Pattern dithering\n* Direct Binary Search (DBS) dithering\n* Dot diffusion\n* Kacker and Allebach dithering\n* Riemersma dithering\n* Thresholding\n\nOther features:\n\n* Libdither works in linear color space and takes image gamma into account\n* Dither matrices and inputs can be easily extended without having to change the dither code itself\n* no external dependencies on other libraries\n* tested on Windows (MingW w64 11.2.0, MSVC 2019), Linux (gcc 11.2.0) and macOS (clang 13.1.6)\n* works with C and C++ projects\n* fairly portable code (most prototyping was done in Python)\n* universal binary support (intel and Apple silicon) for macOS\n\nBuilding Libdither\n------------------\nYou need an ANSI C compiler and the make utility. Run ```make``` to display all build options. \nBy default, libdither is built for the current architecture. \nOnce compiled, you can find the finished library in the ```dist``` directory.\n\nmacOS notes:\n\n* Installing the XCode command line tools is all you need for building libdither\n* You can choose if you want to build a x64, arm64 or universal library. The demo, however, only builds against the current machine's architecture.\n\nLinux notes:\n\n* ```gcc``` and ```make``` is all you need to build libdither. E.g. on Ubuntu you should install build-essential via ```apt``` to get these tools.\n\nWindows notes:\n\n* You can build both MingW and MSVC targets from the Makefile (sorry, no .sln)\n* For MingW, open the Makefile and ensure the path (on top of the file) points to your MingW installation directory\n* Install make via Chocolatey package manager from chocolatey.org (https://chocolatey.org/, https://chocolatey.org/packages/make)\n\nUsage\n-----\nThe ```src/demo``` example shows how to load an image (we use .bmp as it's an easy format to work with), \nconvert it to linear color space, dither it, and write it back to an output .bmp file. The demo was used\nto create all the dithering examples you can see below.\n\nYou can also look at ```libdither.h```, which includes commentary on how to use libdither.\n\nIn your own code, you only need to ```#include \"libdither.h\"```, which includes all public functions\nand data structures, and link the libdither library, either statically or dynamically.\n\nExamples\n--------\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eOriginal\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eGrid dither\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eXot error diffusion\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186177975-7fff4143-5e60-4270-b1c3-43f517445abd.png\" width=220 height=262\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186177999-d243145a-a5cf-44fa-81b7-95b59ab571cf.png\" width=220 height=262\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178037-48177c6e-96f3-4a4b-a21a-72ed0ad57b7d.png\" width=220 height=262\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eDiagonal error diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eFloyd Steinberg error diffusion\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eShiauFan 3 error diffusion\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178045-5835631a-183b-473d-9925-fc43cb871c34.png\" width=220 height=262\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178049-01f3b989-718a-47d5-bb9e-3b92d6987c58.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178053-72b48a34-24c2-49d1-989b-d13b6ebb310f.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eShiauFan 2 error diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eShiauFan 1 error diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eStucki error diffusion\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178056-7a36ec8f-a592-4a03-856d-b66c47b7ccd3.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178058-74d0ca18-f5a5-4d1d-afa1-d63711229b74.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178065-4e31cbd2-4ce3-4488-9fbf-977fc98d7ddc.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003e1D error diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003e2D error diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eFake Floyd Steinberg error diffusion\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178070-d5c3ee60-ec13-4e69-af89-b880614e51e6.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178075-9550fdab-3246-4a4f-8616-b18845a2a871.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178079-b78ae193-7028-4512-a98e-e413d8b7c86f.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eJarvis-Judice-Ninke error diffusion\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eAtkinson error diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eBurkes error diffusion\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178085-f22ed91e-f1d2-45fc-a7b0-b5e6ade6c6e8.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178086-1ed082fa-c55b-42a7-af59-39e4dd8751ad.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178093-9d87abd5-09c0-4c47-b83b-e31bfdea6b0f.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eSierra 3 error diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eSierra 2-row error diffusion\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eSierra Lite error diffusion\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178097-36d03bce-316b-4f06-8a04-408074269075.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178103-e6c0e460-5721-4fc2-93e6-62103ddc8bbf.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178107-c13cf435-2696-42c4-bf36-46dadc188411.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eSteve Pigeon error diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eRobert Kist error diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eStevenson Arce error diffusion\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178108-5f84feb7-5882-4e9d-b7a0-f3bf4f27f989.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178111-af9630a4-6e5d-4b5f-b3a8-f1c6b7caa609.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186178113-24fc54bc-e15a-4e31-b67e-25a94442d279.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eBlue Noise dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eBayer 2x2 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eBayer 3x3 ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179430-db09760f-fa60-4d29-9da8-fb03348d98ae.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179439-0a0dab3e-481d-461d-a6dd-ecd6bf97db68.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179442-60d12f26-b5a5-498b-849c-69b1e46a7f02.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eBayer 4x4 ordered dithering\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eBayer 8x8 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eBayer 16x16 ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179444-e8eea4d0-1a5e-4f4e-a610-9211d664c8b3.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179446-e187f261-074e-4ddf-b110-59eeb569ecc8.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179447-5e099888-6bdc-4fec-9382-aeb0f669bd4a.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eBayer 32x32 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eDispersed Dots v1 ordered dithering\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eDispersed Dots v2 ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179455-b78c7c07-74ba-41df-a187-2af3326bfbed.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179461-b9ddd9cb-59c3-4261-856e-477213ef8e51.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179466-fafb2de2-b34d-4847-826b-eb6e22646a08.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eUlichney Void Dispersed Dots ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eNon-Rectangular v1 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eNon-Rectangular v2 ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179468-d5d64f66-5c5a-470d-acb3-75c75cf376ef.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179473-86ba710d-a8f4-4e3f-99aa-c690fbf159a4.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179479-74302bab-905b-4cd1-998e-41ad2880ad15.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eNon-Rectangular v3 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eNon-Rectangular v4 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eUlichney Bayer 5x5 ordered dithering\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179482-41937a9a-ad4c-4294-8cc8-368cb27f24c7.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179485-299b9d28-e0b5-4419-9b5c-41f06f56b4a9.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179490-dda11896-d568-4818-a350-c84b81c1484c.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eUlichney ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v1 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v2 ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179499-27a14fb4-e4a1-4218-9671-a39ad2e19b57.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179494-894e4b60-fbbf-4f56-8f9c-9f1407f1895d.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179500-a7642aa2-dd03-437b-a4d2-9f7036bdf2b8.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v3 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v4 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v5 ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179502-29bb0e04-9b88-40b0-9399-7160d302e373.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179508-3fd0d21d-4393-4526-a23b-0ddcf7b5df7b.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179512-8bbf7d9e-399d-40c8-a512-ef1f773a7ddc.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v6 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v7 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v8 ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179513-d6e459e4-7428-4d3c-8c7c-7d43b815efd2.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179515-b3064791-5dc3-43f6-a310-be9c5a986f12.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179521-976a4191-ae6b-4c94-8206-808f697621fe.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v9 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v10 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eClustered Dot v11 ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179522-e9ac4c64-1f28-420d-9145-2db7a51dab12.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179529-bf2cc279-9c2a-4ee9-98bb-d09a6d009116.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179531-274a7c3d-f8f4-44c8-bc4f-5817a003e48c.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eCentral White-Point ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eBalanced Central White-Point ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eDiagonal ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179533-16a96117-2f4d-4ecf-bcfb-40636702add9.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179536-acb20e48-332a-4c44-9367-7982cdaf6e9b.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179539-8c6017f5-7190-4d25-aadd-5f1e1030b8fa.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eUlichney Clustered Dot ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eImageMagick 5x5 Circle ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eImageMagick 6x6 Circle ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179543-34d938cc-ce8d-459d-b9ce-eaaa2b49010d.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179545-14afa3d7-4800-41f0-a6c9-bbf79565ff61.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179549-5e584c8d-03d5-4951-bd9c-19dfae1e000e.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eImageMagick 7x7 Circle ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eImageMagick 4x4 45-degree ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eImageMagick 6x6 45-degree ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179553-2093acbd-ef57-4f9c-8bbc-d66d99d496d3.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179555-b9324f88-9edd-4942-8c19-c6399a2e6651.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179562-2accb163-a920-49cc-95cc-4d8a8b9bf2dd.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eImageMagick 8x8 45-degree ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eImageMagick 4x4 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eImageMagick 6x6 ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179565-028b6bc9-25a3-4e50-83a0-9183945dc5ad.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179567-d699adab-9549-4a36-8679-80889473c5c1.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179573-fed6314b-37ed-4d76-b996-6c4f3b9c4508.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eImageMagick 8x8 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eVariable 2x2 ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eVariable 4x4 ordered dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179576-07bf4815-7039-4256-b2bd-f7bc6dd9a290.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179581-0c01997c-32c1-4c59-a094-fbda2d6db43e.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179587-5add9952-1c5e-4520-924d-5eeb52944c60.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eInterleaved Gradient ordered dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eOstromoukhov variable error diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eZhou Fang variable error diffusion\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186179590-0d025e87-efff-4283-8eac-fc89343beac3.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181357-6f6f178c-b99c-478b-8197-baf4ed64d3de.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181368-6a519417-8791-44d1-a226-6d0f2babdc09.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eThresholding\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eDBS v1 dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eDBS v2 dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181371-ae743639-1380-4aef-aefa-c8b0bde6aafe.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181373-b5185e9e-af7b-4897-a1e6-d81aa27f3508.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181376-76c11ff9-866c-41a1-beb6-9182229550ed.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eDBS v3 dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eDBS v4 dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eDBS v5 dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181384-2dac44b3-ee69-4e2a-a5d9-7d0f6efdc6ac.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181388-8123beed-4113-432c-a2ca-cbe8f4436537.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181393-a1a0ab58-2d8a-40bb-ba5d-126b37a21e02.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eDBS v6 dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eDBS v7 dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eKacker and Allebach dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181398-eaa44b15-5b3c-44aa-89ed-eed39d0da427.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181402-6615dcfe-9efe-4bca-8128-0f0df36ac434.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181434-02904ef6-ab45-4fb3-bf74-20e074e7b413.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eModified Riemersma (Hilbert Curve 1) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eModified Riemersma (Hilbert Curve 2) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eModified Riemersma (Peano Curve) dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186181440-ef8f2743-b348-45ef-a1fa-aadb6076664b.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294687-e9219209-c17d-4cb9-acd9-07f38578e2ec.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294737-fcd64796-d0b4-46c5-b84d-998a1c37f49d.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eModified Riemersma (Fass0 Curve) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eModified Riemersma (Fass1 Curve) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eModified Riemersma (Fass2 Curve) dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294752-e7cde461-a720-4603-a14c-e980342ac388.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294758-2720dc4d-77ee-4370-a380-5ba0f9bcbf3d.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294764-3a0c3e6e-1afd-4933-932c-40f05c9a8221.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eModified Riemersma (Gosper Curve) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eModified Riemersma (Fass Spiral) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eRiemersma (Hilbert Curve 1) dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294769-0adc1780-08cc-4c3a-b408-1e1453b667cf.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294776-a238a175-17f1-4f32-bfdb-5528ba77b50e.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294784-e9f4225f-3e62-4fb3-918d-d9a0cf1e6292.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eRiemersma (Hilbert Curve 2) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eRiemersma (Peano Curve) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eRiemersma (Fass0 Curve) dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294789-c08a6db4-c793-4e1c-8c3d-8a0580d4780b.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294792-9664b245-0d7a-483a-8564-4b8beacb1a12.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294798-40460506-5eb9-470b-8644-82ff4d0e4516.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eRiemersma (Fass1 Curve) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eRiemersma (Fass2 Curve) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eRiemersma (Gosper Curve) dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294801-a84d203d-2dc0-4590-96de-9aec21ebf64c.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294805-f9b38cc7-c88f-4182-8991-b2f018c3513e.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294808-bd80cfa0-2ee9-411d-a0d8-9a01ca8f0f1a.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eRiemersma (Fass Spiral) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003ePattern (2x2) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003ePattern (3x3 v1) dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294815-5d2e7fd3-be51-449f-ab2b-c20977f5dc73.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294835-251988ab-a3ff-4c32-8f38-9d3013da8e5e.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294841-3507ab90-f192-4b75-b0dd-25b57c19734b.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003ePattern (3x3 v2) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003ePattern (3x3 v3) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003ePattern (4x4) dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294845-08fc6544-2299-4f16-925b-7c338a92539c.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294849-a55d5aa5-7251-41ae-a6c3-9358f5935189.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294854-b25ca41b-6e74-4770-9a58-22a7d670f2a9.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003ePattern (5x2) dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eLippens and Philips v1 dot dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eLippens and Philips v2 dot dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294857-b00f5d73-ffb2-40ff-b1e3-8daf6bfc1d33.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294860-36297c7c-a186-48f0-ac2f-e5883d67436a.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294864-95ff9e21-c6f5-4241-b1b8-ef7e5a35c460.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eLippens and Philips v3 dot dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eLippens and Philips (Guo Liu 16x16) dot dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eLippens and Philips (Mese and Vaidyanathan 16x16) dot dithering\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294869-82444fbf-a81e-4aba-b3f5-135abffde96f.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294873-b4e12597-328a-404d-8149-6393270c1b7b.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294877-d7123015-a328-448f-a9b3-2018c640e1a1.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eLippens and Philips (Knuth) dot dithering\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eKnuth dot diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eMini-Knuth dot diffusion\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294880-7ed55bdc-b53f-4f92-962a-955a021c2f31.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294916-dca6d7d6-a83d-4ce5-b667-870d409e242d.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294928-0edb9314-d3ad-4a6c-a1e4-60944238f765.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eOptimized Knuth dot diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eMese and Vaidyanathan 8x8 diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eMese and Vaidyanathan 16x16 dot diffusion\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294936-19b563d1-c299-464a-9bfc-ff31ee621752.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294941-d7d3425f-52aa-4eb7-a9d5-92addefc6117.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294946-905eee7f-398d-4b8a-a19e-e9fd15c13ef0.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eGuo Liu 8x8 dot diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eGuo Liu 16x16 dot diffusion\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eSpiral dot diffusion\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294949-e955217f-95ce-4bda-91e8-66a40b57abf1.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294954-c692399a-2400-4978-863a-c229f34d7a0a.png\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294956-6550812e-693c-47dc-aec8-63bf69d0f486.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eInverted Spiral dot diffusion\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9162068/186294959-de3432b6-0961-4372-9afd-75d6b5f19f3d.png\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertkist%2Flibdither","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertkist%2Flibdither","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertkist%2Flibdither/lists"}