[ MaskData ] 将数据隐藏到图片中

MaskData 将数据隐藏到图片中

它是什么

  • 它通过LSB算法将数据写入图片, 并在客户端运行时将数据解析成对象, 可用于隐藏数据文件.
  • 它提供二进制序列化算法, 对数据进行(反)序列化处理, 支持Node和CocosCreator脚本.
  • 由于LSB对裁剪和压缩比较敏感, 所以并不适合用于版权保护, 如果需要可使用 隐形水印.

开发环境

  • 引擎版本: Cocos Creator 2.4.11 & 3.8.0
  • 编程语言: TypeScript
  • 版本支持: 2.x | 3.6.x | 3.7.x | 3.8.x

如何使用

  • node side
// 序列化对象
const buffer = Hide2img.serialization({});
// 将二进制数据写入图片
Hide2img.encode(buffer, imgpath).then(()=> {
	console.log(`encimg: => ${encimg}`);
}).catch(e => {
	console.error(e.message);
});
  • ccc side
// 从Texture解析出隐藏的数据
const buffer = Hide2Texture.decode(texture);
// 反序列化
const obj = Hide2Texture.deserialization(buffer);
console.log(`obj: => ${obj}`);

CCC接口

// 将数据写入Texture
encode(buffer: ArrayBuffer, texture: cc.Texture2D): Uint8Array | null

// 从Texture中解析数据
decode(texture: cc.Texture2D): ArrayBuffer | null

// Texture中可容纳数据大小
capacity(texture: cc.Texture2D): number

// 序列化对象
serialization(obj: object): ArrayBuffer

// 反序列化
deserialization(buffer: ArrayBuffer): object

Node接口

// 将数据写入图片
encode(buffer, imgpath)

// 从图片中解析数据
decode(imgpath)

// 图片中可容纳数据大小
capacity(imgpath)

// 序列化对象
serialization(obj)

// 反序列化
deserialization(buffer)

Node实现依赖canvas库, 在write2img文件夹下执行npm install.

2赞

MaskData 将数据隐藏到图片中 提供2.x版本支持, 请大家及时下载更新.

1赞