{"id":18773133,"url":"https://github.com/khevamann/text-embed","last_synced_at":"2025-07-20T14:04:07.518Z","repository":{"id":102005092,"uuid":"242236860","full_name":"khevamann/text-embed","owner":"khevamann","description":"A fun project I did that encodes a string or text file in an image","archived":false,"fork":false,"pushed_at":"2020-04-03T22:37:03.000Z","size":5612,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-18T05:46:18.727Z","etag":null,"topics":["encoder-decoder","image-encoder","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/khevamann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-02-21T21:50:36.000Z","updated_at":"2025-01-11T00:40:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"fed17363-ce48-4168-b055-51c008c62a69","html_url":"https://github.com/khevamann/text-embed","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/khevamann/text-embed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khevamann%2Ftext-embed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khevamann%2Ftext-embed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khevamann%2Ftext-embed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khevamann%2Ftext-embed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/khevamann","download_url":"https://codeload.github.com/khevamann/text-embed/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khevamann%2Ftext-embed/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266135682,"owners_count":23881802,"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":["encoder-decoder","image-encoder","python3"],"created_at":"2024-11-07T19:32:57.345Z","updated_at":"2025-07-20T14:04:07.271Z","avatar_url":"https://github.com/khevamann.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Text Encoder\nI created this project, because I was learning about PPM files and how they store each pixel value in an array. I thought it would be cool to alter a file to hide information in a picture. This is a clever way to communicate secretly online. Since this program has a unique way of running, the only way to decode the image is to run it through the same program that encoded it.\n\n## Planned Features\n\n- Allow for multiple file formats (PNG, JPEG...)\n- Allow custom offsets to make the encoding more secure\n\n## Getting started\n```shell script\ngit clone https://github.com/khevamann/text-embed.git\ncd text-embed\n\n# To encode a file\npython3 embed_string.py \u003cimage\u003e \u003cstring or text_file\u003e\n\n# To decode a file\npython3 embed_string.py \u003cimage\u003e\n```\n\n### Here is a sample run\nRunning the below script will encode the text file sample.txt into the image sample.ppm. The images below show the before and after. As you can see it is hard to notice the encoded string. \n\n```shell script\npython3 embed_string.py sample.ppm sample.txt\n```\n\nWithout String             |  With String Encoded\n:-------------------------:|:-------------------------:\n![Input Image](docs/sample.jpg) |  ![Output Image](docs/output.jpg)\n\n\u003e If you zoom in really close on the right image you can see the pixels that are altered with text. You will see some pixels that are clearly not the right color. However this is very hard to notice if not looking for it. To make it even more discrete you can use a larger image.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhevamann%2Ftext-embed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhevamann%2Ftext-embed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhevamann%2Ftext-embed/lists"}