调用实例

require("ZZBase64")
local files
local file = io.open("E:\\2342.jpg","rb") if file then
print "发现文件"
files = file:read("*a")
file:close()
else
print "没有找到文件"
end --图片转成base64文本
print(ZZBase64.encode(files))

帮助类

ZZBase64 = {}
local string = string ZZBase64.__code = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', '', '', '', '', '', '', '', '', '', '', '+', '/',
};
ZZBase64.__decode = {}
for k,v in pairs(ZZBase64.__code) do
ZZBase64.__decode[string.byte(v,)] = k -
end function ZZBase64.encode(text)
local len = string.len(text)
local left = len %
len = len - left
local res = {}
local index =
for i = , len, do
local a = string.byte(text, i )
local b = string.byte(text, i + )
local c = string.byte(text, i + )
-- num = a<<16 + b<<8 + c
local num = a * + b * + c
for j = , do
--tmp = num >> ((4 -j) * 6)
local tmp = math.floor(num / ( ^ ((-j) * )))
--curPos = tmp&0x3f
local curPos = tmp % +
res[index] = ZZBase64.__code[curPos]
index = index +
end
end if left == then
ZZBase64.__left1(res, index, text, len)
elseif left == then
ZZBase64.__left2(res, index, text, len)
end
return table.concat(res)
end function ZZBase64.__left2(res, index, text, len)
local num1 = string.byte(text, len + )
num1 = num1 * --lshift 10
local num2 = string.byte(text, len + )
num2 = num2 * --lshift 2
local num = num1 + num2 local tmp1 = math.floor(num / ) --rShift 12
local curPos = tmp1 % +
res[index] = ZZBase64.__code[curPos] local tmp2 = math.floor(num / )
curPos = tmp2 % +
res[index + ] = ZZBase64.__code[curPos] curPos = num % +
res[index + ] = ZZBase64.__code[curPos] res[index + ] = "="
end function ZZBase64.__left1(res, index,text, len)
local num = string.byte(text, len + )
num = num * tmp = math.floor(num / )
local curPos = tmp % +
res[index ] = ZZBase64.__code[curPos] curPos = num % +
res[index + ] = ZZBase64.__code[curPos] res[index + ] = "="
res[index + ] = "="
end function ZZBase64.decode(text)
local len = string.len(text)
local left =
if string.sub(text, len - ) == "==" then
left =
len = len -
elseif string.sub(text, len) == "=" then
left =
len = len -
end local res = {}
local index =
local decode = ZZBase64.__decode
for i =, len, do
local a = decode[string.byte(text,i )]
local b = decode[string.byte(text,i + )]
local c = decode[string.byte(text,i + )]
local d = decode[string.byte(text,i + )] --num = a<<18 + b<<12 + c<<6 + d
local num = a * + b * + c * + d local e = string.char(num % )
num = math.floor(num / )
local f = string.char(num % )
num = math.floor(num / )
res[index ] = string.char(num % )
res[index + ] = f
res[index + ] = e
index = index +
end if left == then
ZZBase64.__decodeLeft1(res, index, text, len)
elseif left == then
ZZBase64.__decodeLeft2(res, index, text, len)
end
return table.concat(res)
end function ZZBase64.__decodeLeft1(res, index, text, len)
local decode = ZZBase64.__decode
local a = decode[string.byte(text, len + )]
local b = decode[string.byte(text, len + )]
local c = decode[string.byte(text, len + )]
local num = a * + b * + c local num1 = math.floor(num / ) %
local num2 = math.floor(num / ) %
res[index] = string.char(num1)
res[index + ] = string.char(num2)
end function ZZBase64.__decodeLeft2(res, index, text, len)
local decode = ZZBase64.__decode
local a = decode[string.byte(text, len + )]
local b = decode[string.byte(text, len + )]
local num = a * + b
num = math.floor(num / )
res[index] = string.char(num)
end

lua 把图片转换成base64的更多相关文章

  1. java 图片转换成base64字符串

    import java.io.ByteArrayOutputStream; import java.io.FileInputStream;import java.io.FileOutputStream ...

  2. js绝对地址图片转换成base64的方法

    //将图片转换成base64 function getBase64Image(url, callback){ var canvas = document.createElement('canvas') ...

  3. Java对网络图片/本地图片转换成Base64编码和解码

    一.将本地图片转换成Base64编码字符串 /** * 将本地图片转换成Base64编码字符串 * * @param imgFile 图片目录路径 * @return */ public static ...

  4. delphi将图片转换成Base64编码函数

    {************************************************************************** 名称: BaseImage 参数: fn: TF ...

  5. Base64字符保存图片,图片转换成Base64字符编码

    //文件转换成Base64编码 public static String getFileBase64Str(String filePath) throws IOException { String f ...

  6. 利用PHP将图片转换成base64编码的实现方法

    先来说一下为什么我们要对图片base64编码 base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一.base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于网络传输. ...

  7. 图片转换成Base64编码集成到html文件

    首先为什么要这么做?  原因很简单这样可以减少与服务器的请求,当然对于一些浏览器并不支持,如IE8.通常用在手机版网站中,具体转化方法如下: 1.在线打开Base64的编码器将图片编码成Base64 ...

  8. JS将图片转换成Base64码

    直接上代码 html页面代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  9. data:image/png;base64 上传图像将图片转换成base64格式

    大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJ ...

随机推荐

  1. 尝试用kotlin做一个app(五)

    JSP后台管理系统 开发工具是IntelliJ IDEA+tomcat+mysql5.6.19+mysql-connector-java-5.1.48.jar+easyui+kindeditor 之前 ...

  2. 【LeetCode】206. 反转链表

    题目 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可 ...

  3. 目标检测算法的总结(R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD、FNP、ALEXnet、RetianNet、VGG Net-16)

    目标检测解决的是计算机视觉任务的基本问题:即What objects are where?图像中有什么目标,在哪里?这意味着,我们不仅要用算法判断图片中是不是要检测的目标, 还要在图片中标记出它的位置 ...

  4. python--多线程的应用

    python 多线程执行函数,以及调用函数时传参 import threading def func1(): print('this is function1') def func2(x,y): pr ...

  5. 实验吧-密码学-js(Chrome用console.log调试js)

    题目就是js,可能就是一个js的代码,查看源码并复制,在Chrome中打开网页,审查元素. 将复制的代码输入,将eval改成console.log,再回车执行,就得到一段js代码. 代码中有Unico ...

  6. ACWING基础算法(三)

    双指针算法. 相向双指针,指的是在算法的一开始,两根指针分别位于数组/字符串的两端,并相向行走. ACWING 的一道裸题(不知道为啥进不去404):最长连续不重复子序列 输入 5 1 2 2 3 5 ...

  7. form——验证器Validators

    form表单最大的作用就是验证功能了,通过cleaned_data清洗,我们可以获取传来的值,通过参数.验证器.自定义验证方法,我们可以做到很多的验证. 验证器可用于在不同类型的字段之间重用验证逻辑. ...

  8. jquery---利用jquery插件生成二维码

    <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/jquer ...

  9. json,pickle,shelve序列化

    import json a = [{"a":"b"}] jd = json.dumps(a) #序列化,就是对象通过内存能够存储和传输的过程 with open ...

  10. html+css web storage课上笔记 2019.3.18

    存储 cookie cookie 使用文本来存储信息 使用时服务器发送cookie给客户端,下一次时,浏览器发送给服务器 web storage local storage 本地的硬件设备中,关闭后不 ...