取canvas中BASE64图片数据

取canvas中Base64图片的数据

document.getElementById('canvasID').toDataURL("image/png")

精易模块本身有一个转到BASE64图的模块有点慢。又在网上无意发现了一个网友写的(居说 是毫秒级转换)。故贴上以备用。

.版本 2

.子程序 编码_图片转BASE64, 字节集, 公开
.参数 待编码数据, 字节集
.局部变量 整数_数据长度, 整数型, 静态
.局部变量 整数_编码长度, 整数型, 静态
.局部变量 字节_数据缓存, 字节集, 静态

整数_数据长度 = 取字节集长度 (待编码数据)
.如果真 (CryptBinaryToStringA (待编码数据, 整数_数据长度, 1, 字节_数据缓存, 整数_编码长度) = 假)
    返回 ({  })
.如果真结束
字节_数据缓存 = 取空白字节集 (整数_编码长度 - 2)
CryptBinaryToStringA (待编码数据, 整数_数据长度, 1, 字节_数据缓存, 整数_编码长度)
返回 (字节_数据缓存)

.子程序 编码_转图片, 字节集, 公开
.参数 待解码数据, 字节集
.局部变量 整数_数据长度, 整数型, 静态
.局部变量 整数_解码长度, 整数型, 静态
.局部变量 字节_数据缓存, 字节集, 静态

待解码数据 = 子字节集替换 (待解码数据, 到字节集 (“data:image/png;base64,”), 到字节集 (“”), , )
整数_数据长度 = 取字节集长度 (待解码数据)

.如果真 (CryptStringToBinaryA (待解码数据, 整数_数据长度, 1, 字节_数据缓存, 整数_解码长度, 0, 0) = 假)
    返回 ({  })
.如果真结束
字节_数据缓存 = 取空白字节集 (整数_解码长度)
CryptStringToBinaryA (待解码数据, 整数_数据长度, 1, 字节_数据缓存, 整数_解码长度, 0, 0)
返回 (字节_数据缓存)
.版本 2

.DLL命令 CryptBinaryToStringA, 逻辑型, "Crypt32.dll", "CryptBinaryToStringA", , 编码
    .参数 pbBinary, 字节集, , 需要转换的数据
    .参数 cbBinary, 整数型, , 数据长度
    .参数 dwFlags, 整数型, , 解码标志 __in DWORD dwFlags,0:带Base64头 1:不带Base64头 2:原文本 3:带证书头 4:16进制 5:16进制带ascii码 9:x.509头 10:16进制带地址 11:16进制带地址和ascii码
    .参数 pszString, 字节集, , 数据缓存
    .参数 pcchString, 整数型, 传址, 返回长度

.DLL命令 CryptStringToBinaryA, 逻辑型, "Crypt32.dll", "CryptStringToBinaryA", , 解码
    .参数 pszString, 字节集, , 需要转换的数据
    .参数 cchString, 整数型, , 数据长度
    .参数 dwFlags, 整数型, , 编码标志 0:带Base64头 1:不带Base64头 2:原文本 3:带证书头 4:16进制 5:16进制带ascii码 9:x.509头 10:16进制带地址 11:16进制带地址和ascii码
    .参数 pbBinary, 字节集, , 数据缓存
    .参数 pcbBinary, 整数型, 传址, 返回长度
    .参数 pdwSkip, 整数型
    .参数 pdwFlags, 整数型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值