有什么把大量文本编码到图片里的方案吗?
我的需求:一个客户端,可以生成一张图片,其中要包含大约几千字的信息,这张图片通过 QQ 发送,对方从 QQ 上复制图片后,可以通过他的客户端还原出这些信息。
我的问题:通过什么方式编码这个图片,能使图片的尺寸比较小?
我第一反应是 qrcode,但我这个文字量,生成出来的码尺寸太大了。我这个场景不需要高容错能力,也不需要限制黑白两色,所以按理说可以更高效的才对。
有什么其它类似的替代方案吗?
我的需求:一个客户端,可以生成一张图片,其中要包含大约几千字的信息,这张图片通过 QQ 发送,对方从 QQ 上复制图片后,可以通过他的客户端还原出这些信息。
我的问题:通过什么方式编码这个图片,能使图片的尺寸比较小?
我第一反应是 qrcode,但我这个文字量,生成出来的码尺寸太大了。我这个场景不需要高容错能力,也不需要限制黑白两色,所以按理说可以更高效的才对。
有什么其它类似的替代方案吗?
比如这个: https://github.com/apachecn/CDNDrive/blob/master/CDNDrive/encoders/PngEncoder.py
这类工具能正常工作的前提是 QQ 存的是原图
这样做的好处就是对图片的破坏性很小,只是将少量像素的值加了 1 而已,存储数据的图片跟原图肉眼看不出区别,也没有强行附加非图片数据在图片文件中,计算下来一张 1080×1920 的 3 通道图片可以存储 700kb 左右的数据。
问题的话就是图片数据隐藏在像素值中,因此图片不能被压缩( jpg 这种自带压缩的图片格式也不能用),另外实际测试发现存储数据后图片文件一样的会增大。
@cat 图种这种走实现漏洞的做法未必管用。
加密的话
stegraphy
搜这个一大堆工具,还有开源代码,按需取用
https://www.zhihu.com/question/50735753/answer/122593277
是这样的, 客户端是一个棋盘小游戏,一个人走完以后点击确定,生成盘面截图,图里还有一个二维码包含棋局数据,图片发到 QQ 群里,群友用他的客户端读取图片后接着玩。现在的问题就是二维码太大了,几乎跟棋盘一样大,不好看。
确实可以二维码只包含链接,客户端访问链接获取数据,不过还是想了解下有没有纯本地解决方案。
类似图种这种二进制方式,经过 QQ 的压缩会被破坏吧?