导航:首页 > 文件处理 > jsbase64压缩

jsbase64压缩

发布时间:2022-07-13 07:05:42

⑴ 如何有效提高Base64编码后的文件的压缩

#include <iostream>

#include <cmath>

#include <cstring>

#include <cstdlib>

using namespace std;

// 初始化工作 , initialize

// 定义查询表 , = 是为了原码不够分配而加上的。

char sz64Table[65] = {'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','0','1','2',
'3','4','5','6','7',
'8','9','+','/','='
} ;

// 定义 变换函数。

void Encode64 (string strGetStr) // 转换
{
// 判断其长度是否符合要求

int nNumberOfGetStr = 0 ; // 串的长度

int nNeedByte ; // 需要补充的字节数

int nGroup ; // 分组数

nNumberOfGetStr = strGetStr.length ();

if ( nNumberOfGetStr == 0 )

{
cout << "输入串为空!"<< endl;

exit ( 1 ) ;

}
else // 长度不为空,要判断数量是否需要补充
{
nGroup = nNumberOfGetStr / 3 ; // 这里是分组数的初步值

nNeedByte = nNumberOfGetStr % 3 ; // 这里是一个模,用的时候还得注意。

if ( nNeedByte == 1 ) // 模1 说明需要两个
{
nGroup ++ ;

strGetStr.append ("00") ;

}

if ( nNeedByte == 2 ) // 模2说明需要一个补0
{
nGroup ++ ;

strGetStr.append ("0") ;

}

} // if

// 开始分组 , 也就是对每一组都进行变换。

char szTemp[3] ; // 中间过渡

// char * p = new char( nGroup * 4 ); // 因为转换后容量是原来的4/3

char p[300] ;

for ( int i = 0 ; i < nGroup ; i ++ )
{

szTemp[0] = strGetStr.at ( i * 3 + 0) ;

szTemp[1] = strGetStr.at ( i * 3 + 1) ;

szTemp[2] = strGetStr.at ( i * 3 + 2) ;

//第一个输出字节:取第一输入字节的前6位,并且在高位补0,使其变成8位(一个字节)

p[i * 4 + 0] = szTemp[0] >> 2 ;

//第二个输出字节:取第一输入字节的后2位和第二个输入字节的前4位(共6位),并且在高位补0,使其变成8位(一个字节)

p[i * 4 + 1] = ((szTemp[0] & 0x03) << 4) ^ (szTemp[1] >> 4) ;

//第三个输出字节:取第二输入字节的后4位和第三个输入字节的前2位(共6位),并且在高位补0,使其变成8位(一个字节)

if ( szTemp[1] == 48) p[i * 4 + 2] = 64 ; // 48 也就是 0 的ASCII

else p[i * 4 + 2] = ((szTemp[1] & 0x0f) << 2) ^ (szTemp[2] >> 6) ;

//第四个输出字节:取第三输入字节的后6位,并且在高位补0,使其变成8位(一个字节)

if ( szTemp[2] == 48) p[i * 4 + 3] = 64 ;

else p[i * 4 + 3] = szTemp[2] & 0x3f ;

}

for (int j = 0 ; j < nGroup * 4 ; j ++)
{
cout << sz64Table[ p[j] ] ;

}

cout << endl;

}// Encode is over ;

昨天看着一个C#代码改写的,可能有些语法语义的不正确,大家见谅。水平实在是不行,但我写了之后发现如果是对一个字符进行编码的话,会出现问题。
跟其他程序比起来,差了3个位置。比如: 1 编为 :MQ== , 我的编为: MT== 。字符多了就没问题。自己没想明白,谁给审审!

⑵ js zip怎么压缩base64字符串

public class Trans {

public void printNum(int num){
System.out.print(Thread.currentThread());//获取当前运行这个方法的类
for(int i=0;i<25;i++){
System.out.print(i+" ");
}
System.out.println();
}
}

⑶ 如何用nodejs压缩文件,生成tar包

压缩文件可以通过导流一个 fs.ReadStream 到一个 zlib 流,然后到一个 fs.WriteStream 来完成。
inp.pipe(gzip).pipe(out);
一步压缩或解压缩数据可以通过快捷方法来完成。
var buffer = new Buffer('eJzT0yMAAGTvBe8=', 'base64');
zlib.unzip(buffer, function(err, buffer) {
if (!err) {
console.log(buffer.toString());
}
});
要在 HTTP 客户端或服务器中使用此模块解决了。

⑷ 当前使用JS在前端完成图片压缩的有哪些方法

这个base64的编码并不能减小图片,反而增大了,大概增大了1/3。至于有没有其他的方法我就不知道了,不过直接构造Blob对象上传就行了,为什么要上传dataurl

⑸ 如何使用 node.js 生成 zip 压缩包

压缩或解压缩一个文件可以通过导流一个 fs.ReadStream 到一个 zlib 流,然后到一个 fs.WriteStream 来完成。

inp.pipe(gzip).pipe(out);

一步压缩或解压缩数据可以通过快捷方法来完成。

varbuffer=newBuffer('eJzT0yMAAGTvBe8=','base64');
zlib.unzip(buffer,function(err,buffer){
if(!err){
console.log(buffer.toString());
}
});

要在 HTTP 客户端或服务器中使用此模块,请在请求和响应中使用accept-encoding和content-encoding头。

⑹ 如何使用JS将音频文件如何转换成base64格式的

1)使用cmd命令运行 输入cmd进入存.swa 文件的文件夹(进入路径用命令 cd ,例:cd C:\abc) 利用命令 ren *.swa *.mp3,批量转换(*为批量适配符) 2)用万能格式转换工具转换例:WinMPG Video Convert

⑺ 前端把图片压缩转换成base64编码把值赐予input='hidden' 之后提交给后台. HTML5,PHP,javascript,canvas

缺点你无法直接验证传来的base64数据的完整性,比如大小,文件头之类的,还需要自己来实现。

⑻ js把页面图片打包成zip格式

<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8"/>
<title></title>
<style>
img{
width:200px;
height:150px;
}
</style>
</head>
<body>

<imgsrc="http://pic.pptbz.com/201506/2015070581208537.JPG"/>
<imgsrc="http://img.taopic.com/uploads/allimg/121014/234931-1210140JK414.jpg"/>
<imgsrc="http://img.zcool.cn/community/.jpg"/>
<imgsrc="http://img.zcool.cn/community/.jpg"/>
<br/><br/>
<buttononclick="packageImages()">packageImages</button><spanid="status"></span><br/><br/>

<scripttype="text/javascript"src="js/jquery.min.js"></script>
<scripttype="text/javascript"src="js/jszip.min.js"></script>
<scripttype="text/javascript"src="js/FileSaver.js"></script>
<scripttype="text/javascript">
functionpackageImages(){
$('#status').text('处理中。。。。。');

varimgs=$('img');

varimgsSrc=[];
varimgBase64=[];
varimageSuffix=[];//图片后缀
varzip=newJSZip();
zip.file("readme.txt","案件详情资料 ");
varimg=zip.folder("images");

for(vari=0;i<imgs.length;i++){
varsrc=imgs[i].getAttribute("src");
varsuffix=src.substring(src.lastIndexOf("."));
imageSuffix.push(suffix);

getBase64(imgs[i].getAttribute("src"))
.then(function(base64){
imgBase64.push(base64.substring(22));

//console.log(base64);//处理成功打印在控制台
},function(err){
console.log(err);//打印异常信息
});

}
functiontt(){
setTimeout(function(){
if(imgs.length==imgBase64.length){
for(vari=0;i<imgs.length;i++){
img.file(i+imageSuffix[i],imgBase64[i],{base64:true});
}
zip.generateAsync({type:"blob"}).then(function(content){
//seeFileSaver.js
saveAs(content,"images.zip");
});
$('#status').text('处理完成。。。。。');

}else{
//console.log('imgs.length:'+imgs.length+',imgBase64.length:'+imgBase64.length);
$('#status').text('已完成:'+imgBase64.length+'/'+imgs.length);
tt();
}
},100);

}
tt();

}

//传入图片路径,返回base64
functiongetBase64(img){
functiongetBase64Image(img,width,height){//width、height调用时传入具体像素值,控制大小,不传则默认图像大小
varcanvas=document.createElement("canvas");
canvas.width=width?width:img.width;
canvas.height=height?height:img.height;

varctx=canvas.getContext("2d");
ctx.drawImage(img,0,0,canvas.width,canvas.height);
vardataURL=canvas.toDataURL();
returndataURL;
}
varimage=newImage();
image.crossOrigin='Anonymous';
image.src=img;
vardeferred=$.Deferred();
if(img){
image.onload=function(){
deferred.resolve(getBase64Image(image));//将base64传给done上传处理
}
returndeferred.promise();//问题要让onload完成后再returnsessionStorage['imgTest']
}
}

</script>
</body>
</html>

阅读全文

与jsbase64压缩相关的资料

热点内容
access文件夹树的构造 浏览:660
安卓多指操作怎么设置 浏览:656
linux树形目录 浏览:727
平方根的简单算法 浏览:898
千牛订单页面信息加密取消 浏览:558
单片机自制红外遥控灯 浏览:719
服务器最小配置怎么弄 浏览:853
ibm服务器硬件如何升级 浏览:923
全球程序员节点赞 浏览:986
php函数传递数组 浏览:631
人工峰群算法的目标函数 浏览:468
如何删加密文档 浏览:105
涂鸦app一键执行如何删除 浏览:756
安卓手机如何打开fr3文件 浏览:743
压缩袋8丝和14丝是什么意思 浏览:647
程序员大咖java 浏览:70
苹果手机文档安卓上怎么打开 浏览:527
如何做淘宝代理服务器 浏览:672
gz压缩文件夹 浏览:179
字母h从右往左跑的c语言编程 浏览:137