{"id":13602014,"url":"https://github.com/iminto/hideImage","last_synced_at":"2025-04-11T08:31:14.916Z","repository":{"id":79008047,"uuid":"176778975","full_name":"iminto/hideImage","owner":"iminto","description":"图片隐写，应用场景看你了","archived":false,"fork":false,"pushed_at":"2022-10-08T10:12:22.000Z","size":314,"stargazers_count":36,"open_issues_count":0,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-07T05:38:21.246Z","etag":null,"topics":["java"],"latest_commit_sha":null,"homepage":null,"language":"Java","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/iminto.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}},"created_at":"2019-03-20T16:56:28.000Z","updated_at":"2024-07-11T08:01:16.000Z","dependencies_parsed_at":"2024-01-14T05:01:04.342Z","dependency_job_id":"58a01ce6-09f7-4ad0-8f56-3300d441e6e9","html_url":"https://github.com/iminto/hideImage","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iminto%2FhideImage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iminto%2FhideImage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iminto%2FhideImage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iminto%2FhideImage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iminto","download_url":"https://codeload.github.com/iminto/hideImage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248361516,"owners_count":21090917,"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":["java"],"created_at":"2024-08-01T18:01:11.724Z","updated_at":"2025-04-11T08:31:14.524Z","avatar_url":"https://github.com/iminto.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"图片隐写，将要隐藏的文字写入图片中，理论上最大可支持几十M文本。\r\n\r\n原理比较简单，将输入的文本转为二进制字符串，然后和图片的RGB像素奇偶对应。\r\n比如：\r\n图片前三个像素RGB的值为（222,111,23）,（222,10,23）（1,58,40），规则为1对奇0对偶，则这三个像素对应存储的二进制为\r\n011001100。\r\n\r\n现在已知一个二进制串，只需要对图片像素进行微调，即可记录下这串二进制字符串，这个像素微调对人眼来说是无法区分的。\r\n提取文本则是进行一个反向运算。\r\n\r\n更多细节可参阅源码。\r\n\r\n经过处理的图片和原图在肉眼上几乎没有区别，并且在体积上不会造成明显膨胀。\r\n（处理后的体积可能略微膨胀，甚至会变小，取决于原图色彩的复杂度）\r\n\r\n注意：本源码并非标准的LSB隐写，使用本软件隐写的内容使用Stegsolve类软件不能简单提取。\r\n\r\nGUI运行方式：\r\n```\r\njava -jar  -Dfile.encoding=UTF-8  hide.jar\r\n```\r\n命令行运行方式：\r\n```\r\n java -cp  target/hide.jar  -Dfile.encoding=UTF-8 tony.ImageHide\r\n```\r\nAPP截图：\r\n\r\n![APP截图][3]\r\n\r\n测试原图：\r\n\r\n![原图][1]\r\n\r\n测试处理后图片:\r\n\r\n![处理后图片][2]\r\n\r\n隐藏文字：组织上已经决定了，今天的垃圾都归你\r\n\r\n另：增加了图片简单劣化的功能。\r\n运行方式：\r\n```\r\n java -cp  target/hide.jar  -Dfile.encoding=UTF-8 tony.ImageTran\r\n```\r\nTodo:\r\n - [x] 修复提取内容上最后一个文字乱码的bug\r\n - [x] 待隐写的文本内容有硬回车导致回车前内容被截取的bug\r\n - [ ] 随机位置隐写的功能\r\n\r\n  [1]: ./static/yaofan.png\r\n  [2]: ./static/yaofan_hide.png\r\n  [3]: ./static/hide.png\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiminto%2FhideImage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiminto%2FhideImage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiminto%2FhideImage/lists"}