{"id":18016637,"url":"https://github.com/loiccoyle/phomo-rs","last_synced_at":"2026-02-08T06:40:23.510Z","repository":{"id":258752919,"uuid":"871377381","full_name":"loiccoyle/phomo-rs","owner":"loiccoyle","description":"📷 Rust library, binary and wasm package to create photo mosaics","archived":false,"fork":false,"pushed_at":"2024-10-27T17:32:19.000Z","size":7568,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-01T09:47:26.511Z","etag":null,"topics":["image-processing","mosaic","photomosaic","rust","wasm"],"latest_commit_sha":null,"homepage":"http://loiccoyle.com/phomo-rs/","language":"Rust","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/loiccoyle.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":"2024-10-11T20:50:16.000Z","updated_at":"2024-10-27T17:32:23.000Z","dependencies_parsed_at":"2024-11-20T21:39:01.176Z","dependency_job_id":null,"html_url":"https://github.com/loiccoyle/phomo-rs","commit_stats":null,"previous_names":["loiccoyle/phomo-rs"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loiccoyle%2Fphomo-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loiccoyle%2Fphomo-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loiccoyle%2Fphomo-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loiccoyle%2Fphomo-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loiccoyle","download_url":"https://codeload.github.com/loiccoyle/phomo-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245713074,"owners_count":20660342,"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":["image-processing","mosaic","photomosaic","rust","wasm"],"created_at":"2024-10-30T04:18:44.026Z","updated_at":"2026-02-08T06:40:23.463Z","avatar_url":"https://github.com/loiccoyle.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://i.imgur.com/l6U2V9T.png\" width=\"800\"\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cb\u003eEasy photo mosaics\u003c/b\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cb\u003e\n  Make your own photo mosaics \u003ca href=\"https://phomo.loiccoyle.com/\"\u003ehere\u003c/a\u003e!\n  \u003c/b\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://crates.io/crates/phomo\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/phomo\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://crates.io/crates/phomo-cli\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/phomo-cli\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://npmjs.com/package/phomo-wasm\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/phomo-wasm\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://docs.rs/phomo/latest/phomo/\"\u003e\u003cimg src=\"https://img.shields.io/docsrs/phomo\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://aur.archlinux.org/packages/phomo-git\"\u003e\u003cimg src=\"https://img.shields.io/aur/version/phomo-git\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/loiccoyle/phomo-rs/actions\"\u003e\u003cimg src=\"https://github.com/loiccoyle/phomo-rs/actions/workflows/ci.yml/badge.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-mit-blue.svg\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-linux%20%7c%20macos%20%7c%20windows-informational\"\u003e\n\u003c/p\u003e\n\n\u003e Prefer python? Check out [`loiccoyle/phomo`](https://github.com/loiccoyle/phomo)!\n\nThis repo contains two crates:\n\n- `phomo` crate contains the photo mosaic generation library.\n- `phomo-cli` crate provides the command line interface to the `phomo` crate.\n\nAnd one `npm` package:\n\n- `phomo-wasm` provides the `wasm` bindings and allows `phomo` to be used in the browser.\n\n## 📦 Installation\n\n## Command line\n\n### Cargo\n\nTo use the `phomo` binary to build photo mosaics, install the `phomo-cli` crate:\n\n```sh\ncargo install phomo-cli\n```\n\n### Arch linux (AUR)\n\nUsing your favourite AUR helper, install the `phomo-git` package:\n\n```sh\nparu -S phomo-git\n```\n\n### Usage\n\nOnce installed, you can use the `phomo` binary.\n\nSomething like:\n\n```sh\nphomo master_image.png tile_directory/ output_mosaic.png\n```\n\nIf doubt see the help:\n\n\u003c!-- help start --\u003e\n\n```console\n$ phomo -h\nUsage: phomo [OPTIONS] \u003cMASTER_FILE\u003e \u003cTILE_DIR\u003e \u003cOUTPUT\u003e\n\nArguments:\n  \u003cMASTER_FILE\u003e  Master image\n  \u003cTILE_DIR\u003e     Tile directory\n  \u003cOUTPUT\u003e       Output mosaic file\n\nOptions:\n  -g, --grid-size \u003cWIDTH,HEIGHT\u003e       Grid size, the number of tiles along the width and height\n  -n, --n-appearances \u003cN_APPEARANCES\u003e  The number of times a tile can appear in the mosaic [default: 1]\n      --crop-tiles                     Crop tiles to grid cell size\n      --resize-tiles                   Resize tiles to grid cell size\n      --equalize                       Equalize the master and tile image color distributions\n      --transfer-master-to-tiles       Transfer the color palette of the master image to the tile images\n      --transfer-tiles-to-master       Transfer the color palette of the tile images to the master image\n      --solver \u003cSOLVER\u003e                The solver to use to compute the tile to cell assignments [default: hungarian] [possible values: greedy, auction, hungarian]\n      --metric \u003cMETRIC\u003e                The distance metric to use [default: norm-l1] [possible values: norm-l1, norm-l2, avg-color, luminance-l1, luminance-l2]\n  -v, --verbose...                     Increase logging verbosity\n  -q, --quiet...                       Decrease logging verbosity\n  -h, --help                           Print help (see more with '--help')\n  -V, --version                        Print version\n```\n\n\u003c!-- help end --\u003e\n\n## Library\n\nTo use the library as a dependency in your projects, add the `phomo` crate:\n\n```sh\ncargo add phomo\n```\n\nSee the [docs](https://docs.rs/phomo) for usage.\n\n## Wasm\n\nTo use the `wasm` bindings in your project, add the `phomo-wasm` `npm` package:\n\n```sh\nnpm add phomo-wasm\n```\n\nI would recommend taking a look at the [demo page's source code](https://github.com/loiccoyle/phomo-rs/tree/gh-pages).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floiccoyle%2Fphomo-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floiccoyle%2Fphomo-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floiccoyle%2Fphomo-rs/lists"}