// 引入wasm_exec.js
const go = new window.Go();
const initInstantiate = (obj) => {
go.run(obj.instance).then();
}
// url->wasm地址
const initWasm = (url) => {
if ('instantiateStreaming' in WebAssembly) {
WebAssembly.instantiateStreaming(fetch(url), go.importObject).then(initInstantiate);
} else {
fetch(url).then(resp => resp.arrayBuffer()).then(bytes => WebAssembly.instantiate(bytes, go.importObject).then(initInstantiate))
}
}
// 加载wasm
initWasm("xxx/xxx/xxx.wasm")
1.人脸识别WASM
// 初始化加载图片
window.InitTestImage(JSON.stringify({Img: Array.from(imageByte)}))
// 识别
let params = JSON.stringify({
Shape: shape, // 形状框:rect(正方形)、circle(圆形)、ellipse(椭圆)
FaceParam: {
Angle: angle, // 弧度:0.0~1.0,默认0.0
MinSize: minSize, // 人脸最小尺寸:20
MaxSize: maxSize, // 人脸最大尺寸:1000
ShiftFactor: shiftFactor, // 按百分比切换检测窗口,0.15
ScaleFactor: scaleFactor, // 按百分比缩放检测窗口,1.15
IouThreshold: iouThreshold, // 联合交叉口(IoU)阈值,0.15
MarkLlpLoc: markLlpLoc, // 是否开启面部关键点定位分类器,bool类型
MarkDetEyes: markDetEyes, // 是否标记检测眼睛,bool类型
MarkPup: markPup, // 是否定位眼睛,bool类型
ColorRectFace: colorRectFace, // 人脸外框颜色,例如:#abcdef
ColorRectEye: colorRectEye, // 眼睛外框颜色,例如:#abcdef
ColorPointFace: colorPointFace, // 人脸关键点颜色,例如:#abcdef
ColorPointEye: colorPointEye, // 眼睛关键点颜色,例如:#abcdef
}
})
let res = window.FaceReCog(params);
2.头像生成器WASM
// sex->性别
// name->昵称
window.GenerateAvatar(sex, name)
3.汉字转拼音WASM
// hans->汉字
window.Hans2PinYin(hans)
4.IP定位WASM
// ip->IP地址
window.Search(ip)
5.手机号归属地WASM
// phone->手机号
window.ChinaPhone(phone)
6.身份证查询WASM
// idCard->身份证号码
// isStrict->严格模式:开启、关闭
window.ChinaIDCard(idCard, isStrict)
7.HTTPS证书自签名生成器WASM
let params = JSON.stringify({
"country": "**", // 国家
"province": "云南省", // 省份
"locality": "昆明市", // 城市
"street_address": "官渡区矣六街道", // 街道
"postal_code": "650000", // 邮编
"organization": "汇聚云南特产", // 公司
"organizational_unit": "市场部", // 部门
"common_name": "www.rustgopy.com", // 域名
"date": "2024-12-31" // 截止日期
})
window.GenerateCA(params)
8.常见数据正则校验WASM
// cate->分类:date(日期)、email(邮箱)、phone(手机号码)、telephone(电话号码)、postcode(邮政编码)、qq(QQ号码)、ipv4(IPv4地址)、ipv6(IPv6地址)、ip(IP地址)、mac(MAC地址)、url(URL地址)、domain(域名)、resident-id(身份证号码)、bank-card(银行卡号码)
// data->数据
window.CheckData(cate, data)