{"id":13719202,"url":"https://github.com/google/iconvg","last_synced_at":"2025-05-07T11:31:20.593Z","repository":{"id":50116740,"uuid":"353142013","full_name":"google/iconvg","owner":"google","description":"IconVG is a compact, binary format for simple vector graphics: icons, logos, glyphs and emoji.","archived":false,"fork":false,"pushed_at":"2024-06-30T06:51:37.000Z","size":1179,"stargazers_count":677,"open_issues_count":18,"forks_count":11,"subscribers_count":15,"default_branch":"main","last_synced_at":"2024-11-14T08:35:49.199Z","etag":null,"topics":["vector-graphics"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google.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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-30T21:09:01.000Z","updated_at":"2024-11-04T18:24:38.000Z","dependencies_parsed_at":"2022-09-12T09:12:19.590Z","dependency_job_id":"54574594-f1c7-4cf7-b090-59683efb417b","html_url":"https://github.com/google/iconvg","commit_stats":{"total_commits":81,"total_committers":3,"mean_commits":27.0,"dds":0.0864197530864198,"last_synced_commit":"054d74844f4d576d9cac993cf5cf7e3ac4385c4d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Ficonvg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Ficonvg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Ficonvg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Ficonvg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/iconvg/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252868767,"owners_count":21816919,"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":["vector-graphics"],"created_at":"2024-08-03T01:00:44.274Z","updated_at":"2025-05-07T11:31:20.143Z","avatar_url":"https://github.com/google.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# IconVG\n\nIconVG is a compact, binary format for simple vector graphics: icons, logos,\nglyphs and emoji.\n\n**WARNING: THIS FORMAT IS EXPERIMENTAL AND SUBJECT TO INCOMPATIBLE CHANGES.**\n\nIt is similar in concept to SVG (Scalable Vector Graphics) but much simpler.\nCompared to [SVG Tiny](https://www.w3.org/TR/SVGTiny12/), which isn't actually\ntiny, it does not have features for text, multimedia, interactivity, linking,\nscripting, animation, XSLT, DOM, combination with raster graphics such as JPEG\nformatted textures, etc.\n\nIt is a format for efficient presentation, not an authoring format. For\nexample, it does not provide grouping individual paths into higher level\nobjects. Instead, the anticipated workflow is that artists use other tools and\nauthoring formats like Inkscape and SVG, or commercial equivalents, and export\nIconVG versions of their assets, the same way that they would produce PNG\nversions of their vector art. It is not a goal to be able to recover the\noriginal SVG from a derived IconVG.\n\nIt is not a pixel-exact format. Different implementations may produce slightly\ndifferent renderings, due to implementation-specific rounding errors in the\nmathematical computations when rasterizing vector paths to pixels. Artifacts\nmay appear when scaling up to extreme sizes, say 1 million by 1 million pixels.\nNonetheless, at typical scales, e.g. up to 4096 × 4096, such differences are\nnot expected to be perceptible to the naked eye.\n\n\n## Example\n\n![Cowbell image](./test/data/cowbell.png)\n\n- `cowbell.png`    is 18555 bytes (256 × 256 pixels)\n- `cowbell.svg`    is  4506 bytes\n- `cowbell.iconvg` is  1012 bytes (see also its\n  [disassembly](./test/data/cowbell.iconvg.disassembly))\n\nThe [test/data](./test/data) directory holds these files and other examples.\n\n\n## File Format\n\n- [IconVG Specification](spec/iconvg-spec.md)\n- Magic number: `0x8A 0x49 0x56 0x47`, which is `\"\\x8aIVG\"`.\n- Suggested file extension: `.iconvg`\n- Suggested MIME type: `image/x-iconvg`\n\n\n## Implementations\n\nThis repository contains:\n\n- a decoder [written in C](./release/c)\n- a decoder [written in Dart](./src/dart), albeit for an [older (obsolete)\n  version of the file format](https://github.com/google/iconvg/issues/4)\n- a low-level decoder [written in Go](./src/go). Low-level means that it\n  outputs numbers (vector coordinates), not pixels.\n\nThe [original Go IconVG\npackage](https://pkg.go.dev/golang.org/x/exp/shiny/iconvg) also implements a\ndecoder and encoder, albeit for an [older (obsolete) version of the file\nformat](https://github.com/google/iconvg/issues/4).\n\n\n## Disclaimer\n\nThis is not an official Google product, it is just code that happens to be\nowned by Google.\n\n\n---\n\nUpdated on January 2022.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Ficonvg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Ficonvg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Ficonvg/lists"}