Cocos Store 盲水印插件 [版权鉴定][已发布][优惠中]

Cocos 盲水印插件(通用版)

https://store.cocos.com/app/detail/5022

为保护数字资源(图片,代码…)而制作
简单来说, 就是在一定程度上, 能在压缩,裁剪,涂改图片后, 仍旧可以读取到版权信息,
鉴定后去追溯责任人(防止飞速盗图和资源吧)(虽然高手也能改)

image

开发环境

NodeJs 为基础
编程语言: JavaScript + Html

目前[已测试]平台

Cocos Creator 3.4.0, 3.7.1, 3.8.0 Creator 2.4.10, 2.4.9, 2.4.0
:white_check_mark::white_check_mark::white_check_mark: :white_check_mark::white_check_mark::white_check_mark:

目前[已支持]

.Jpg, PNG, BMP .WEBP, GIF 代码字符串 .MP3 , .MP4, .WAV
:white_check_mark::white_check_mark::white_check_mark: :white_check_mark::white_check_mark: :white_check_mark: :white_check_mark::white_check_mark::white_check_mark:

插件介绍

GIF 图片只处理首帧

  1. 支持对所有的图片类型添加盲水印 .jpg|png|webp|gif|bmp…
  2. 支持快速高效处理大图片和非2次幂图片
  3. 盲水印处理, 可以在一定程度对抗图片压缩和裁剪, 无需原图 即可读取水印
  4. 盲水印添加后基本上和原图无异, 肉眼看不出来有水印
  5. 通过的图像的时域方向上改写不同的 RGB 颜色通道值去添加盲水印(LSB)
  6. 支持对字符串加入零宽字符串作为版权校验信息
  7. 支持自定义水印文字, 水印文字支持中英文和特殊字符, 而且可以自动填充画布, 有设置最小和最大 fontSize
  8. 支持自定义查看各个颜色通道值的图片预览效果, 类似于 StegSolve 的效果
  9. 可以多开面板也可以在浏览器上使用, 如果有需求也可以改造到 Cocos 游戏里面使用
  10. 无需联网, 直接本地使用即可
  11. 增加批量处理面板, 支持处理所有文件格式的文件类型, 核心原理就是合并盲水印的数据到文件里面去
  12. 批处理合并的数据内容读取数据时自动生成 .txt 文件, 内置一个 exe 处理文件
  13. 支持手动选择需要批量处理的文件类型(.mp3|wav|mp4|jpg|png|gif…)
  14. 支持批量读取图片里面的时域盲水印内容并保存到图片文件, 方便查看
  15. 支持批量添加时域盲水印图片, 添加后如果需要读取, 请刷新下或者关闭再开下面板, 杜绝缓存
  16. 目前批处理面板对 .jpg 图片的兼容不太友好, 目前 .png 兼容比较好, 因此建议 .jpg 手动单面板处理

使用教程

1.1 选择图片蓝色通道加盲水印

叠加的通道值越多, 图片越大

1.2 选择图片红色通道加盲水印

1.3 选择图片绿色通道加盲水印

2.1 代码字符串水印

3.1 查看盲水印(多角度)

这个可以通过不同的通道去查看时域的盲水印信息

3.2 同面板内查看盲水印

4.1 裁剪和旋转破坏测试

5.0 盲水印对比图


5.1 先打开面板读取下水印数据

5.2 先添加再读取图片的水印数据

5.3 先添加再读取音频视频的水印数据

5.4 简单读取下未加时域盲水印图片蓝色通道

5.5 批量添加时域盲水印后刷新下页面再读取

因为基于面板做了批量的时域图片可视化,
所以如果需要在添加 LSB 时域盲水印后即刻读取盲水印,
请先刷新下面板再点击读取按钮.(Ctrl+R)

插件源码目录

总计 150 MB (158,288,407 字节)

└─cc-blind-watermark
    │  main.js
    │  package-lock.json
    │  package.json
    │  
    ├─blind_watermark_test
    │      
    ├─i18n
    │      en.js
    │      zh.js
    │      
    ├─node_modules 
    │          
    ├─panel
    │  │  index.css
    │  │  index.html
    │  │  index.js
    │  │  run_local_server[启动][服务器].exe
    │  │  
    │  └─blindWatermarkLsbImg
    │          indexLsbImg.html
    │          indexLsbImg.html.meta
    │          indexLsbImgJs.js
    │          indexLsbImgJs.js.meta
    │          myLogo.png
    │          myLogo.png.meta
    │          
    ├─panelBlindRead
    │  │  index.css
    │  │  index.html
    │  │  index.js
    │  │  
    │  └─blindWatermarkLsbImg
    │          indexLsbTimeRead.html
    │          indexLsbTimeReadJs.js
    │          myLogo.png
    ├─panelChosePopup
    ├─TOOLS
    │          
    └─panelTextString
        │  index.css
        │  index.html
        │  index.js
        │  
        └─blindWatermarkTextString
                index.html
                myLogo.png
                 

更新声明

  • 后续更新的版本会继续放在这里面更新

版权声明

  • 该插件资源中的源代码可商业使用
  • 商业授权范围仅限于在您自行开发的游戏作品中使用
  • 不得进行任何形式的转售、租赁、传播等

联系作者

购买须知

  • 请各位朋友看后仔细思考,是否符合您的项目或者研究需求,谨慎使用
  • 目前内容相对比较少, 后续才会迭代
  • 因为本产品为付费虚拟商品,一经购买成功概不退款,请在购买谨慎确认购买内容。

原理概要贴::

1赞

今天端午节, 祝大家端午节安康

后续帖子更新可能就是些功能和原理的更新了 :grinning: :laughing:

最后, 如果感兴趣的话可以研究研究, 当然, 大佬一般都是知道原理的, 比较简单 :smile:
大佬们也来留言呀 :grinning:

原理概要贴 (本文只讨论 [时域][盲水印])

本插件基于时域水印的 LSB (最低有效位) 对图片做了盲水印处理 (版权鉴定可以用得上)
目前来说, 对抗性(能在压缩,裁剪,涂改图片后也可以读取版权信息)还算可以, 另外其它的资源(.wav, .mp3, .mp4)之类的版权信息处理比较简单,
就是简单把版权信息合并到了资源文件里面去了(也支持处理任意格式的图片)(二进制处理),
读取的时候就可以把读到的版权信息生成一个对应的 .txt 文件, 方便溯源.

举例, 列举一个最简单的颜色值

rgb(23,24,25)
RGB(23,24,25)
将红色通道的颜色值的整数 23 转换为 8 位二进制表示的 JavaScript代码示例:
var colorValue = 23;
var binaryString = colorValue.toString(2).padStart(8, ‘0’);

对于颜色值23(红色),24(绿色),25(蓝色),它们的二进制表示分别为:

23(红色): 00010111
24(绿色): 00011000
25(蓝色): 00011001

每个颜色通道的值占用了8个比特位(一个字节)。现在,如果要在每个颜色通道中隐藏1位信息,可以通过修改每个颜色通道的最低有效位(LSB)来实现。假设要隐藏的信息位是:010。

修改后的颜色值如下:

23(红色): 00010110 (将最低位从7改为6)
24(绿色): 00011001 (将最低位从8改为9)
25(蓝色): 00011000 (将最低位从9改为8)

通过这种方式,将信息位(010)嵌入到了图像的颜色通道中,实现了LSB隐写。这样修改后的颜色值在人眼中几乎无法察觉到变化,但其中携带了隐藏的信息。

需要注意的是,LSB隐写可能会导致隐藏信息的损失,因为每个颜色通道只能隐藏1位信息。如果需要隐藏更多的信息,
可能需要使用更多的像素点或者其他更复杂的隐写算法。此外,解码隐藏信息时需要知道嵌入信息的位置和长度,以正确提取隐藏的数据

在鲁棒性(健壮性|不容易被改写)(能在压缩,裁剪,涂改图片后也可以读取版权信息)方面, 目前找过的开源库里面,
时域盲水印和频域盲水印方面, 暂时没找到对抗性比较好的频域开源库(NodeJs 版),
相对来说, 频域盲水印的实现比较复杂, 另外找过的频域库和软件使用, 但是简单有损压缩就不见了, 水印难辨别

相对频域水印来说, 时域方向的实现稍微简单一些, 对抗性也比较好,
如果大家有用过什么比较好的 NodeJS 版本的频域水印库, 能否指点一二? 感谢 :smile:感谢

频域水印, 如下图, 频域水印, 2 次方幂的图片水印

1赞

功能更新 Cocos 2.x && Cocos 3.x 插件

目前基本上定稿, 保存到 .zip 文件比较方便操作 :laughing:

5.6 盲水印面板拖入文件夹或者多个图片读取水印

优化调整了字体适配, 根据图片文件自动重命名到zip包里面去

5.7.1 盲水印面板拖入图片添加盲水印保存到zip

5.7.2 查看zip里面的盲水印图片

基于 html 打包 到 exe 文件, 其实下方这个命令也可以

npm install nativefier -g

目前 web2exe 文件最小, 239 KB

某些情况下, 可作为临时的 Windows 发布 exe 的解决方案
也可以用这个 https://github.com/lixk/easy-window

5.7.3 基于web2exe展示页面

工具目录
extensions\cc-blind-watermark\TOOLS\

web2exe打包HTML变成exe显示[双击exe打开网页].exe

核心的封包 exe 只有不到 300 kb, 其它方法供参考

盲水印批处理页面-体验优化

下拉太麻烦, 感觉增加个 Tab 切换的功能比较友好, 提升使用体验
其它封包的 exe 也已经同步更新

5.7.4 优化 UI 界面, 增加 Tab 切换功能