{"id":21933644,"url":"https://github.com/chee/mojimosi","last_synced_at":"2026-04-18T12:03:48.391Z","repository":{"id":97396287,"uuid":"455323015","full_name":"chee/mojimosi","owner":"chee","description":"makes an emoji mosaic of your picture","archived":false,"fork":false,"pushed_at":"2022-08-05T01:31:39.000Z","size":453,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-30T05:38:29.964Z","etag":null,"topics":["emoji","image","mosaic"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chee.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-02-03T20:47:31.000Z","updated_at":"2024-02-16T19:21:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"ca9a4056-f59e-46c2-87bd-2880878b6150","html_url":"https://github.com/chee/mojimosi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chee/mojimosi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chee%2Fmojimosi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chee%2Fmojimosi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chee%2Fmojimosi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chee%2Fmojimosi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chee","download_url":"https://codeload.github.com/chee/mojimosi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chee%2Fmojimosi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31967993,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["emoji","image","mosaic"],"created_at":"2024-11-29T00:13:08.002Z","updated_at":"2026-04-18T12:03:48.362Z","avatar_url":"https://github.com/chee.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mosimoji\n\nmake an e**moji** **mos**a**i**c of from your picture\n\n## getty\n\n- `npm i -g mojimosi`\n\n## usage\n\n1. `npx mojimosi [options] \u003cimage\u003e`\n\n### options\n\n| option               | type   | description                                                             |\n| -------------------- | ------ | ----------------------------------------------------------------------- |\n| `--tilesize`, `-t`   | number | the number of pixels an emoji should represent                          |\n| `--background`, `-b` | string | a colour like \"white\" or \"#ff2a50\" to use in place of transparent tiles |\n\n### examples\n\n#### eat more pixels per emoji\n\n- `npx mojimosi -t64 friend.png \u003e friend.txt`\n\n#### dark mode\n\n- `npx mojimosi -b black -t12 lol.png | pbcopy`\n\n## thanks\n\n- to @InboxAppCo who made the MIT licensed [emoji extractor](https://github.com/InboxAppCo/extract-emoji) that's been subtree'd in, but is not a runtime dependency\n- to @DavidBarts who made the [getfonts](https://github.com/DavidBarts/getfonts) package that's been illegally subtree'd in. they took a lot of flack for it on reddit because of _IANAL but EULA amirite_, and it's unlicensed so i've included their copyrighted code in this project.\n- Mihai Potra whose MIT licensed find-color script is included here with some features removed to make it work for me\n- everyone who made any of the dependencies\n- the people i love and the people who love me and most especially the intersect\n\n## story\n\nthe first thing i did was i extracted the TTF (true type) font files from the\nTTC collection at `/System/Library/Fonts/Apple Color Emoji.ttc` using the\n`getfonts` script that's subtree'd in here, but was written by @DavidBarts (who\nposted about it on reddit and then everyone told them they were bad). then i\nextracted the emoji from the ttfs using the `extract-emoji` script here, that\nwas by @InboxAppCo (or by @devangovett according to the package.json).\n\nthen i created a plain text file that i've called [`database`](./database) to\nannoy rich hickey, which contains one-per-line of: `emoji red green blue alpha`,\nof the average colour of the image reported by the [`image-average-color`](https://npmjs.org/image-average-color)\nnpm package.\n\nthen, the picture that's given on the command line is sliced up into a grid the\nsize of the [tilesize] provided on the command line (defaults to 32), then the\naverage colour of each slice is matched as closely as it can be (by Mihai's\nfind-color script) to one of the emoji average colours, then the emoji are\nprinted out in that same grid.\n\n## about the author\n\n```\n🎐 🗒 🕐 🕳 ➰ 🌠 🐦 🛫 🖲 🗻 🖇 🗻 👾 🔧 🔧 🛠 👓 🗻 🛩 🧟 🎩 🦅 📺 📺 🐎 🐗 🐗 🐗 🐎\n🎐 🌫 🗯 🔪 👟 📫 📲 🗻 🥄 🥄 🔧 🔧 🔧 🔧 🔧 ⛏ 🕹 🏇 🐀 🕋 🦅 📺 📺 🐎 🐎 🐎 🐎 🐗 🏟\n🌫 📑 📢 🏐 🎑 🏔 🖲 💤 💤 👾 👾 👾 ⛏ 🏇 🏇 🦆 💄 🕹 📿 🖥 🐄 📺 🐎 🐎 🐗 🦇 🏟 🏟 👡\n📢 🕳 ⏱ 👽 🚉 🥄 💤 🔧 🐜 🐜 🐃 ⛏ ⛏ ⛏ 🏇 🕹 🕹 👙 💼 🐃 📽 📺 🐎 🐎 🐗 🐐 📸 👡 📿\n👟 🎲 ➰ 🚿 🗻 💤 🔨 🍳 🎪 🤰 🙅 🚂 🎉 🎉 👞 🚘 🚀 🚘 🚘 🕹 🐃 🌘 👁 🐎 🐗 🐐 🌋 👡 🧛\n🚍 📱 💱 🛫 🥄 💤 🔧 🏭 🤡 🧣 🐔 🐔 🔺 🔺 🗂 🐔 👠 ⛑ ⛑ 👞 🦆 💻 🎧 🐄 🐎 🐐 🌋 🍮 🧛\n🚟 🗨 🗨 🛫 💤 🔧 🐃 🍖 🍫 🐔 🔺 🍿 🍿 🍿 🍿 🍿 🗂 🥨 ⛱ 📿 🐜 🥄 🖇 🎧 🐎 🏟 🦗 🍮 🥀\n🔚 🚟 🚐 🛫 💤 🔧 🎯 🤡 🍫 🧣 🗂 🔺 🍿 🔺 🔺 🍿 🔺 🗂 🥨 🍒 🏇 👓 📎 🎧 🐎 🏟 🦗 🐖 🥀\n💣 💣 🚐 🖲 📎 👾 🐓 🤡 🍫 🧣 🔺 🔺 🔺 🔺 🔺 🍿 🍻 🍻 🍿 🌅 📿 🥄 🎬 🗃 🐎 🏟 🌋 🐖 👡\n🗃 🗃 🏔 🖲 👾 🐃 💳 🤡 🧣 🔺 🔺 🔺 🔺 🔺 🥫 ❗ ❗ 🎊 🛏 🐔 🧛 💻 💻 🗃 🐎 🏟 🌋 🐖 👡\n🛒 🛒 🚓 🗻 🔧 🐜 🏺 📼 🎭 ⛽ 🔺 🔺 🥫 🥫 🥫 🍿 🦃 🎯 🎯 🐖 🏘 🔧 💻 🐗 🦇 🐗 🌋 🐖 🐌\n🎱 🦏 🖇 👾 🔧 🐃 🧛 🐜 📿 📿 🎉 🚨 🔺 🔺 🔺 🍿 🐷 🚁 🐷 🐔 🍉 🔧 💻 🐎 🦇 🐗 📸 🐖 🐌\n🌘 🐘 🗻 🔧 🔧 🐃 🚂 🚂 🏰 🎧 👞 🍒 🚨 🔺 🍻 🍫 🚢 🔳 🐜 🤡 🤡 🔧 💻 🐎 🦇 📸 📸 🏠 🍮\n🎧 🎧 🦓 👣 📎 🚴 🙅 🐜 🎴 🔘 🚇 🚘 🚭 🔺 🍻 🍠 👠 🏒 🦃 🤡 🗂 🛠 🗃 🐗 🐐 📸 📸 🐖 🐖\n🎧 🎧 🌘 🎩 💻 📿 🤰 🚂 🕺 🚶 🎉 🎉 🚷 🔺 🔺 🍿 🐷 🍿 🐔 🗂 🗂 🖥 🐎 🐗 🐐 📸 🏠 🐖 🐖\n🎧 🖥 🌘 🎩 🚟 🎯 🤰 🤰 🤰 👠 🍒 🍒 🚷 🔻 🔺 🔺 🔺 🔻 🔺 🔺 🔺 🏭 🐎 🐎 🏰 📸 🏠 🍮 🐖\n🖥 🖥 🌘 🎩 🔝 🎎 🍣 🦐 📛 🦐 📵 🚒 🚷 🔻 🔺 🔺 🔻 🔺 🔺 🥫 🔺 🕰 🐎 📺 🏰 📸 🏠 🍮 🐖\n🖥 🖥 🖥 🌘 🔘 🍛 🍓 🚨 🔻 📛 🚒 🎸 👺 🔻 🔺 🔺 💝 🔻 🥫 🥫 🔺 🕰 🐎 🦇 🏰 📸 🐖 🍮 🐖\n🏯 🖥 🖥 🖥 💱 🎎 🦑 🚨 🔻 ⛔ 🏓 🚒 🏓 🔻 🔺 🔺 🔺 🔻 🔺 🥫 🍿 🕰 👁 🦅 🏰 📸 🍮 🍮 🍮\n🐀 🏯 🖥 🖥 🎛 🚬 🚭 🍄 🔻 🚨 📵 🚒 👠 🔺 🔺 🥫 🥫 🍿 🔺 🥫 🥫 🚁 🦇 🏰 🏰 🏠 🍮 🍮 🐌\n🚇 🐀 🏯 🖥 🎑 🎥 🚶 🍄 🔻 🍄 🚭 📵 🚷 💝 📛 🔺 🔺 🧣 🍿 🥫 🍿 👁 🦇 🎩 🏰 🏠 🍮 🐫 🐌\n🍳 🚴 🕹 🥅 💄 🦆 👙 🚭 🦐 🍤 👹 👄 📕 📮 🈲 💝 🔻 🔺 🥫 🥫 🕰 🦅 🦅 🌘 🏰 🐖 🐌 🍮 🥀\n🐜 🕹 💄 🥅 🥅 🥅 💻 ⛑ 🚭 🦐 🚭 🏓 🏓 💝 🔻 🔺 🍌 🥫 🥫 🍠 💄 🎩 🎩 🌘 👡 🏘 🐌 🍮 🧛\n💄 🥅 🥅 🔧 🥅 🥅 🎧 🖇 🚘 🍒 🚷 🦐 🚨 🔻 🔺 🔺 🥫 🥫 💳 📿 🏎 🏎 🕹 🕹 🕹 🥀 🐌 🐌 🧛\n🥅 🥅 🥅 🥅 🏎 🥅 🌉 🛩 ⛏ 🚘 🚶 🚱 🚨 🔻 🔺 🔺 🥫 🐷 🖥 🖥 🏎 🏎 🏎 🥅 🥅 🏎 👞 🐌 👞\n🏎 🥅 🥅 🏎 💋 🏎 🐁 🗨 🎬 🐜 🎭 🚶 🍄 🔺 🔺 🍿 🐷 🏘 🖥 🖥 🎯 🏎 ❌ 🥅 🏎 🏎 🏎 👞 📿\n❌ 🏎 🥅 💋 💋 🏎 ⛪ 📬 🎑 🛒 🏭 📍 🤡 🐷 🐷 💳 🌘 🧛 🏰 🏰 🌄 🏎 🏎 🥅 🏎 🏎 🏎 ⛩ 👙\n❌ 🏎 🏎 💋 💋 🏎 🍬 🛫 🛫 🌬 🦉 🍺 🥫 🥫 🕯 👞 🎳 🦇 🏰 🖇 🖲 👙 🏎 🥅 🏎 🏎 🏎 ❌ ❌\n❌ 🏎 💋 💋 💋 ⛩ 📞 🎣 🗻 🛴 🏐 🦔 🀄 🥫 🛏 📿 🛳 🐨 🎳 👾 🛴 🏎 🏎 🥅 🏎 🏎 🏎 ❌ ❌\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchee%2Fmojimosi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchee%2Fmojimosi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchee%2Fmojimosi/lists"}