在一些社群看到的“乱码”图是啥,以及针对的一点改进

2026-04-11 14:580阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

有时候在一些聊天分享的社区/群聊里面会看到类似的图像

image1020×618 107 KB

这种看上去纯乱码的图片是什么呢?

这其实是一种利用了 Gilbert 曲线(广义希尔伯特曲线) 的图像混淆(至于为啥要混淆那心照不宣)
e974199a120267e22f6f88a1a4dd2ef9602×624 41.7 KB

但是这样混淆掉的图像也有很明显的问题:别人压根不知道解开后里面会是啥内容,万一开到一些不好的把人吓出心理阴影咋办

基于此,我又在这个基础上加了一层小预览机制

  • 先把原图按 tile 切块
  • 按固定步长抽样一些 tile
  • 把这些 tile 重新拼到左上角
  • 形成一个低分辨率预览
  • 剩下区域再做 Gilbert 路径混淆

这样最后出来的图就很有意思:

  • 左上角还能大致看出原图内容
  • 主体区域已经被混淆

就像这样:

unmuddled1024×1024 377 KB
muddled1026×1026 532 KB

也可以调整的更抽象一些(细节更低、尺寸更小),这里为了方便看出来我调的比较清晰,实际上可用很抽象的:
image1491×1380 485 KB

Python的实现逻辑:

#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ image_muddle_gilbert.py CLI 示例: # 编码:保留左上角预览,非预览区使用 Gilbert 曲线路径做循环位移混肴 python image_muddle_gilbert.py encode --in in.jpg --out muddled.png \ --tile 32 32 --stri

阅读全文
标签:算法纯水
问题描述:

有时候在一些聊天分享的社区/群聊里面会看到类似的图像

image1020×618 107 KB

这种看上去纯乱码的图片是什么呢?

这其实是一种利用了 Gilbert 曲线(广义希尔伯特曲线) 的图像混淆(至于为啥要混淆那心照不宣)
e974199a120267e22f6f88a1a4dd2ef9602×624 41.7 KB

但是这样混淆掉的图像也有很明显的问题:别人压根不知道解开后里面会是啥内容,万一开到一些不好的把人吓出心理阴影咋办

基于此,我又在这个基础上加了一层小预览机制

  • 先把原图按 tile 切块
  • 按固定步长抽样一些 tile
  • 把这些 tile 重新拼到左上角
  • 形成一个低分辨率预览
  • 剩下区域再做 Gilbert 路径混淆

这样最后出来的图就很有意思:

  • 左上角还能大致看出原图内容
  • 主体区域已经被混淆

就像这样:

unmuddled1024×1024 377 KB
muddled1026×1026 532 KB

也可以调整的更抽象一些(细节更低、尺寸更小),这里为了方便看出来我调的比较清晰,实际上可用很抽象的:
image1491×1380 485 KB

Python的实现逻辑:

#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ image_muddle_gilbert.py CLI 示例: # 编码:保留左上角预览,非预览区使用 Gilbert 曲线路径做循环位移混肴 python image_muddle_gilbert.py encode --in in.jpg --out muddled.png \ --tile 32 32 --stri

阅读全文
标签:算法纯水