Skip to content

TankFactory/Mirage_Decode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

314 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

光棱坦克工厂

一种基于灰度值分离与像素交错的(伪)隐写图 - 显形与制作工具

链接

备用链接

废弃链接

  • Github Pages - tankfactory.github.io/Mirage_Decode
  • Vercel - mirage-decode.vercel.app

以上两个链接均会(自动)跳转至 prism.uyanide.com, 已无必要继续使用

技术原理

百度贴吧 - 开个贴细说新式高科技坦克

百度贴吧 - 光棱工厂 2.0 😎

使用方法

一看就懂,不懂也能用 :)

运行方法

  1. git clone https://github.com/Uyanide/Mirage_Decode.git
  2. cd web
  3. yarn install
  4. yarn devyarn build

库 / 组件 / API

  • 核心
    • React
    • Vite
  • 框架
    • Material UI
    • Zustand
  • 图像处理
    • WebCodec API
    • WebGL2 API
    • Canvas API
    • jpeg-js
    • piexif.js
    • pttjpeg
  • 其他
    • file-saver
    • ...

Q&A

0. 百度贴吧相关:

@Lason•᷄ࡇ•᷅ 的帖子

1. 这个什么所谓光棱坦克只能用这个工具看吗?

并不是,使用图像编辑软件调整某些参数也可以达到显形的目的,详情参见百度贴吧 - 开个贴细说新式高科技坦克

2. 这个什么所谓光棱坦克只能用这个工具做吗?

并不是,完全可以仅使用 ps 等图像编辑软件制作,详情参见同上。

3. 无论怎么拉参数都完全看不出里图怎么办?

请再次确认保存的是原图。如果您使用的是百度贴吧手机 app,请按以下步骤逐一排查:

  1. 请在保存图片前先点击图片进入大图模式,再长按图片,选择“查看原图”并等待加载完成,然后再长按保存。
  2. 如果仍然无效,可以复制帖子链接在浏览器里重新打开,下载或复制图片。
  3. 如果仍然无效,以防您的输入法不支持插入 emoji: 🔨

如果您使用的是百度贴吧电脑网页端,请确认在保存、复制或拖动图片前已点击图片跳转至大图页面,并确认在图片完全加载完成后再进行操作。

如果您是图片的制作者,请按以下步骤逐一排查:

  1. 请确认参数设置是否合理,例如里图色阶端点设置是否过低,对比度设置是否过于夸张。制作界面的显形测试可以帮助您检查这一点。
  2. 可尝试更换导出格式,有关 PNG/JPEG 的格式的区别详见 Q&A 第 6 条。
  3. 请确认在发送图片时勾选了“原图”选项。
  4. 如果使用的是百度贴吧,请确认在设置中关闭了图片水印。如果有水印百度会对图片进行二次处理,这可能会导致意料之外的图片压缩。

4. 为何从 URL 加载图像一直无效?明明复制到浏览器地址栏可以正常访问?

为了解决跨域问题,所有 URL 请求默认均通过代理进行,网络通信以及代理服务均可能发生异常,虽然我已经尽可能避免此类情况的发生,但仍然无法完全排除可能性。

5. 图像为何保存失败?

此功能高度依赖本地浏览器环境,如果出现问题推荐更换浏览器重试。另外如果可以的话请通过 issue 或者其他任何方式告诉我您使用的浏览器。

6. 保存为 PNG 格式和 JPEG 格式有何区别?

  1. JPEG 格式为有损压缩,即便目前已经通过引入第三方库保证了较高的图像保存质量,保证不会因为 JPEG 压缩导致显形后出现明显色块,但仍然会不可避免地在显形时出现噪点等其他问题。
  2. PNG 格式虽然可以保证近乎无损的显形质量,但却极易被社交平台强制压缩,影响传输后的图像质量。且写入 tEXt 块的显形参数很容易丢失,这会使自动显形功能失效。
  3. JPEG 格式不支持透明度,因此当表图或里图为幻影坦克时不建议使用 JPEG 格式导出。

7. 为什么有些图片可以自动调整参数,自动显形,有些却不行?

本工具的自动显形是通过写入图片元数据实现的,如果图片本身不具备元数据/传输过程中丢失元数据/解析图片时发生意料之外的错误便无法做到自动显形。1.3 版本后通过本工具制作的图片均会被自动写入生成时所使用的参数。

8. 项目名为什么叫与功能毫不相干的 Mirage_Decode?

  • Mirage:因为在最开始制作这个网站的时候这种隐藏图片的方法还没有被(广泛地)称作"光棱坦克",所以取另一种存在时间更长,流传更广的且与之类似的隐藏图技术"幻影坦克"的"幻影"作"Mirage"。
  • Decode:这个网站最开始的开发目标只是帮助显形,后来考虑到无论使用 PS 制作还是使用脚本生成门槛都太高才加上了制作功能。

总之,这名字是最开始乱起的,后来因为种种不便也没办法改了。

About

光棱坦克工厂

Resources

License

Stars

Watchers

Forks

Contributors