{"id":19003370,"url":"https://github.com/wertzui123/icylib","last_synced_at":"2026-02-28T08:34:07.214Z","repository":{"id":246113767,"uuid":"820096713","full_name":"Wertzui123/icylib","owner":"Wertzui123","description":"🧊 icylib is a simple CPU-based image processing and manipulation library ","archived":false,"fork":false,"pushed_at":"2025-05-11T18:09:38.000Z","size":405,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-29T06:44:25.465Z","etag":null,"topics":["c","graphics","image-processing"],"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/Wertzui123.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-25T19:43:16.000Z","updated_at":"2025-05-11T18:09:42.000Z","dependencies_parsed_at":"2024-06-25T23:23:14.174Z","dependency_job_id":"cc2a0dbc-bf43-438e-99f7-c28a7e644726","html_url":"https://github.com/Wertzui123/icylib","commit_stats":null,"previous_names":["wertzui123/icylib"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Wertzui123/icylib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wertzui123%2Ficylib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wertzui123%2Ficylib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wertzui123%2Ficylib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wertzui123%2Ficylib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wertzui123","download_url":"https://codeload.github.com/Wertzui123/icylib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wertzui123%2Ficylib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29928811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","graphics","image-processing"],"created_at":"2024-11-08T18:18:52.464Z","updated_at":"2026-02-28T08:34:07.196Z","avatar_url":"https://github.com/Wertzui123.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# icylib 🧊\n`icylib` is a simple CPU-based image processing and manipulation library built on top of [stb](https://github.com/nothings/stb).\n\nIt abstracts away the complexity of working with images by providing a simple interface for drawing shapes, rendering text, chunking images, and much more.\n\nPlease note that `icylib` does **not** utilize any hardware acceleration (except SIMD instructions) and is thus not really suitable for real-time rendering. Nonetheless, it does use some fairly optimized algorithms and is still quite fast for a lot of use cases.\n\n## How to use?\nicylib is **not** a single-header library for the sake of readability and because of its dependencies. Yet, it is still very easy to use, as it only uses header files for both its interface and its implementation.\n\nIf you want to use icylib in your project, you can simply include the header files you need in your source files, and some fancy include guards will take care of the rest.\n\n### Example: [Julia Set](examples/julia)\n```c\n#define ICYLIB_IMPLEMENTATION\n\n#include \"regular_image.h\"\n#include \"color.h\"\n\nvoid main() {\n    icylib_RegularImage* image = icylib_regular_create_from_size(800, 800, 3);\n\n    for (int y = 0; y \u003c image-\u003eheight; y++) {\n        for (int x = 0; x \u003c image-\u003ewidth; x++) {\n            double a = (double)x / image-\u003ewidth * 4 - 2;\n            double b = (double)y / image-\u003eheight * 4 - 2;\n            double ca = -0.8;\n            double cb = 0.156;\n            int n = 0;\n            while (n \u003c 100) {\n                double aa = a * a - b * b;\n                double bb = 2 * a * b;\n                a = aa + ca;\n                b = bb + cb;\n                if (a * a + b * b \u003e 16) {\n                    break;\n                }\n                n++;\n            }\n            icylib_Color color = icylib_color_from_rgb(0, 0, 0);\n            if (n \u003c 100) {\n                color = icylib_color_from_rgb(255 * n / 100, 255 * n / 100, 255 * n / 100);\n            }\n            icylib_regular_set_pixel(image, x, y, color);\n        }\n    }\n\n    icylib_regular_save_to_file(image, \"julia_set.png\");\n}\n```\n```console\n$ gcc julia.c -o julia -I path/to/icylib\n$ ./julia\n```\n[![Julia Set](examples/julia/julia_set.png)](examples/julia/julia_set.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwertzui123%2Ficylib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwertzui123%2Ficylib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwertzui123%2Ficylib/lists"}