{"id":16229753,"url":"https://github.com/jerboa88/image-signer","last_synced_at":"2025-03-19T14:30:20.828Z","repository":{"id":93593020,"uuid":"186071654","full_name":"jerboa88/Image-Signer","owner":"jerboa88","description":"An experimental Python program to encode binary data within an image visually","archived":false,"fork":false,"pushed_at":"2024-07-29T04:03:35.000Z","size":529,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-15T00:35:10.460Z","etag":null,"topics":["cli-app","image-processing","image-signatures","python","steganography"],"latest_commit_sha":null,"homepage":"https://johng.io/p/image-signer","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jerboa88.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":"2019-05-11T00:53:05.000Z","updated_at":"2024-08-05T12:27:29.000Z","dependencies_parsed_at":"2023-03-12T11:46:53.422Z","dependency_job_id":null,"html_url":"https://github.com/jerboa88/Image-Signer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FImage-Signer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FImage-Signer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FImage-Signer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FImage-Signer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jerboa88","download_url":"https://codeload.github.com/jerboa88/Image-Signer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243996838,"owners_count":20380978,"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":["cli-app","image-processing","image-signatures","python","steganography"],"created_at":"2024-10-10T12:59:10.230Z","updated_at":"2025-03-19T14:30:20.436Z","avatar_url":"https://github.com/jerboa88.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Project Header --\u003e\n\u003cdiv align=\"center\"\u003e \n  \u003ch1 class=\"projectName\"\u003eImage Signer\u003c/h1\u003e\n\n  \u003cp class=\"projectBadges\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/type-CLI_App-f44336.svg\" alt=\"Project type\" title=\"Project type\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/languages/top/jerboa88/Image-Signer.svg\" alt=\"Language\" title=\"Language\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/repo-size/jerboa88/Image-Signer.svg\" alt=\"Repository size\" title=\"Repository size\"\u003e\n    \u003ca href=\"LICENSE\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/license/jerboa88/Image-Signer.svg\" alt=\"Project license\" title=\"Project license\"/\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n  \n  \u003cp class=\"projectDesc\" data-exposition=\"An experimental Python program to encode binary data within an image visually. Created for the purpose of learning about image processing, steganography, and the SciKit Python library.\"\u003e\n    An experimental Python program to encode binary data within an image visually\n  \u003c/p\u003e\n  \n  \u003cbr/\u003e\n\u003c/div\u003e\n\n\n## About\nThe program works by converting the input text to binary and then modifying the brightness values of existing pixels to encode these binary values in the image. Keep in mind that the approach used for both encoding and reading data is extremely naive at the moment, and JPEG compression will likely destroy the high frequencies holding data if the image is reencoded.\n\n\n## Installation\nPython 3 and Skikit are required.\n\n\n## Usage\n### Writing to Images\n**Syntax:** `python3 imagesigner.py sign IMAGENAME \"MESSAGE TO ENCODE\" REPETITIONS`, where `REPETITIONS` is the number of lines in the image the message is repeated. A value of -1 encodes the message on every line. Most common image file formats are accepted. Encoding images with more repetitions will result in a more accurate result as the chances of every repetition being unreadable is smaller, but will result in more visible stripes across the image.\n\nFor example, `python3 imagesigner.py sign image.jpg \"The quick brown fox jumps over the lazy dog\" 32` encodes the phrase `The quick brown fox jumps over the lazy dog` in binary and writes it to 32 lines in the source image, `image.jpg`.\n\n### Reading from Images\n**Syntax:** `python3 imagesigner.py read IMAGENAME`. Again, most common image file formats are accepted.\n\nFor example, `python3 imagesigner.py read image_signed.jpg` tries to extract any encoded text from the source image, `image_signed.jpg`.\n\n### Config\nThere are some other global config variables in the code. `sensitivity` is an integer that controls which color values are considered white. Higher values allow more pixels to be considered white. `verbose` toggles the printing of extra information. `opacity` controls how visible the encoded data is with respect to the original image.\n\n\n## Contributing\nThis is a an experimental project but ideas are welcome.\n\n\n## License\nThis project is licensed under the Mozilla Public License 2.0. See [LICENSE.md](LICENSE.md) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerboa88%2Fimage-signer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjerboa88%2Fimage-signer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerboa88%2Fimage-signer/lists"}