{"id":17677590,"url":"https://github.com/sleitnick/png2ico","last_synced_at":"2026-02-28T07:00:40.612Z","repository":{"id":244318538,"uuid":"814887133","full_name":"Sleitnick/png2ico","owner":"Sleitnick","description":"Cross-platform CLI tool to convert a list of PNG files into a single ICO file.","archived":false,"fork":false,"pushed_at":"2024-06-16T22:44:11.000Z","size":27,"stargazers_count":4,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-04T10:12:38.360Z","etag":null,"topics":["cli","ico","icon","png","tool"],"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/Sleitnick.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2024-06-13T23:27:27.000Z","updated_at":"2025-03-02T02:18:51.000Z","dependencies_parsed_at":"2024-06-16T23:38:08.068Z","dependency_job_id":null,"html_url":"https://github.com/Sleitnick/png2ico","commit_stats":null,"previous_names":["sleitnick/png2ico"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Sleitnick/png2ico","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sleitnick%2Fpng2ico","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sleitnick%2Fpng2ico/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sleitnick%2Fpng2ico/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sleitnick%2Fpng2ico/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sleitnick","download_url":"https://codeload.github.com/Sleitnick/png2ico/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sleitnick%2Fpng2ico/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29927171,"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":["cli","ico","icon","png","tool"],"created_at":"2024-10-24T07:29:05.400Z","updated_at":"2026-02-28T07:00:40.294Z","avatar_url":"https://github.com/Sleitnick.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PNG to ICO\n\nThe `png2ico` command line tool converts a list of PNG files into a single ICO file.\n\n## Install\nBelow are two diferent ways to install the tool.\n### Manual Installation\n1. Download the latest release binary for your given platform.\n1. Extract the binary from the zip file.\n1. Place the binary in your desired directory.\n1. Point your path environment variable to the binary's location.\n\nTest out the installation by outputting the version:\n```sh\n$ png2ico --version\n```\n\n### Aftman\nUse [`aftman`](https://github.com/LPGhatguy/aftman) to install the binary.\n```sh\naftman add Sleitnick/png2ico@0.1.1\n```\n\n## Usage\n```sh\n# Convert a list of PNGs to a single ICO file:\n$ png2ico output.ico input1.png [input2.png]...\n\n# Output version\n$ png2ico --version\n\n# Output help\n$ png2ico --help\n```\n\n## About\nI needed to generate an ICO file for a Godot application. All the other tools to do so were terrible or hosted on sketchy websites built to generate ad revenue. I also wanted to learn some more C, hence why this is written in C and not some fancy new language. Nonetheless, the project is quite small.\n\nThis tool has been written specifically for the given task of generating an ICO file from a series of PNG files. There are no external libraries outside of the standard C library. The PNG decoder is only implemented to decode the necessary parts of the PNG in order to generate the ICO file. As such, the generated binary is nice and small.\n\n## Build from Source\nRun [`xmake`](https://xmake.io/) within the project's root directory.\n```sh\n$ xmake\n```\n\nTest the build:\n```sh\n$ xmake run png2ico --version\n```\n\n## Project Structure\n| File | Description | Local Dependencies |\n| ---- | ----------- | ------------ |\n| `main` | Entry point and CLI management | _All_ |\n| `ico` | ICO generator | `png`, `buffer`, `err` |\n| `png` | PNG decoder | `buffer`, `err` |\n| `err` | Shared error definitions | _None_ |\n\n## Contributing\nSee something that's broken or insecure? Feel free to open up an issue and open up a PR. Pull requests without an attached issue will be declined.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsleitnick%2Fpng2ico","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsleitnick%2Fpng2ico","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsleitnick%2Fpng2ico/lists"}