HTML5+规范:Zip(管理文件压缩和解压)

Zip模块管理文件压缩和解压,通过plus.zip可获取压缩管理对象。

1、方法

1.1、compress: 压缩生成Zip文件

      void plus.zip.compress(src, zipfile, successCB, errorCB);

参数:

src: ( String ) 可选 要压缩的源文件路径,支持文件路径或目录

zipfile: ( String ) 可选 压缩后保存的Zip文件路径

successCB: ( ZipSuccessCallback ) 必选 压缩Zip文件操作成功回调,在压缩操作成功时调用

errorCB: ( ZipErrorCallback ) 必选 压缩Zip文件操作失败回调,在压缩操作失败时调用

返回值:void : 无

示例:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<script type="text/javascript">
//压缩
function zipCompress(){
var zipfile = "_doc/text11.zip";
var targetPath = '_doc/dir/';
plus.zip.compress(targetPath,zipfile,
function() {
alert("Compress success!");
},function(error) {
alert("Compress error!");
});
}
</script>
</head>
<body >
<input type='button' onclick='zipCompress()' value='zip压缩' />
</body>
</html>


1.1、decompress: 解压缩Zip文件

        void plus.zip.decompress( zipfile, target, successCB, errorCB);

参数:

zipfile: ( String ) 可选 需解压Zip文件路径

target: ( String ) 可选  解压Zip文件的目标路径,必须是路径

successCB: ( ZipSuccessCallback ) 必选 解压Zip文件操作成功回调,在解压操作成功时调用。

errorCB: ( ZipErrorCallback ) 必选 解压Zip文件操作失败回调,在解压操作失败时调用。

返回值:void : 无

示例:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<script type="text/javascript">
//解压缩
function zipDecompress() {
var zipfile = "_doc/text.zip";
var targetPath = '_doc/dir/';
plus.zip.decompress(zipfile, targetPath,
function() {
alert("Decompress success!");
},function(error) {
alert("Compress error!");
});
}
</script>
</head>
<body >
<input type='button' onclick='zipDecompress()' value='zip解压' />
</body>
</html>


1.1、compressImage: 图片压缩转换

     void plus.zip.compressImage( options, successCB, errorCB);

说明:可用于图片的质量压缩、大小缩放、方向旋转、区域裁剪、格式转换等。

参数:

options: ( CompressImageOptions ) 必选 图片压缩转换的参数

successCB: ( CompressImageSuccessCallback ) 可选 图片压缩转换操作成功回调,操作成功时调用。

errorCB: ( ZipErrorCallback ) 可选 图片压缩转换操作失败回调,操作失败时调用。

返回值:void : 无

示例:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<script type="text/javascript">
//压缩图片
function compressImage(){
plus.zip.compressImage({
src:"_www/a.jpg",
dst:"_doc/a.jpg",
quality:20
},
function() {
alert("Compress success!");
},function(error) {
alert("Compress error!");
});
}
//缩放图片
function zoomImage(){
plus.zip.compressImage({
src:"_www/a.jpg",
dst:"_doc/a.jpg",
width:"50%"	// 缩小到原来的一半
},
function() {
alert("Compress success!");
},function(error) {
alert("Compress error!");
});
}
//旋转图片
function rotateImage(){
plus.zip.compressImage({
src:"_www/a.jpg",
dst:"_doc/a.jpg",
rotate:90	// 旋转90度
},
function() {
alert("Compress success!");
},function(error) {
alert("Compress error!");
});
}
//裁剪图片
function clipImage(){
plus.zip.compressImage({
src:"_www/a.jpg",
dst:"_doc/a.jpg",
clip:{top:"25%",left:"25%",width:"50%",height:"50%"}	// 裁剪图片中心区域
},
function() {
alert("Compress success!");
},function(error) {
alert("Compress error!");
});
}
//格式转换
function convertImage(){
plus.zip.compressImage({
src:"_www/a.jpg",
dst:"_doc/a.png",
format:"png"	// 将jpg转换成png格式
},
function() {
alert("Compress success!");
},function(error) {
alert("Compress error!");
});
}
</script>
</head>
<body >
<button onclick="compressImage()">压缩图片</button><br/>
<button onclick="zoomImage()">缩放图片</button><br/>
<button onclick="rotateImage()">旋转图片</button><br/>
<button onclick="clipImage()">裁剪图片</button><br/>
<button onclick="convertImage()">格式转换</button><br/>
</body>
</html>


2、对象

2.1、CompressImageOptions: JSON对象,配置图片压缩转换的参数

说明:设置width/height属性则表示需对图片进行缩放转换操作; 设置rotate属性则表示需对图片进行旋转转换操作; 设置clip属性则表示需对图片进行裁剪转换操作; 如同时设置了多个转换操作,则按缩放、旋转、裁剪顺序进行操作。

属性:

(1)、src: (String 类型 )压缩转换原始图片的路径。支持以下图片路径: 相对路径 - 相对于当前页面的host位置,如"a.jpg",注意当前页面为网络地址则不支持; 绝对路径 - 系统绝对路径,如Android平台"/storage/sdcard0/Android/data/io.dcloud.HBuilder/.HBuilder/apps/HBuilder/www/a.jpg",iOS平台"/var/mobile/Containers/Data/Application/757966CF-345C-4348-B07F-EEF83CF9A369/Library/Pandora/apps/HBuilder/www/a.png"; 相对路径URL(RelativeURL) - 以"_"开头的相对路径,如"_www/a.jpg"、"_doc/b.jpg"、"_documents/c.jpg"、"_downloads/d.jpg"; 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。平台支持Android - 2.2+ (支持): 支持jpg/jpegpng等格式图片。iOS - 5.0+ (支持): 支持jpg/jpegpngtif/tiffgifbmpicocurxbm等格式图片。

(2)、dst: (String 类型 )压缩转换目标图片的路径。支持以下图片路径: 绝对路径 - 系统绝对路径,如Android平台"/storage/sdcard0/Android/data/io.dcloud.HBuilder/.HBuilder/apps/HBuilder/doc/a.jpg",iOS平台"/var/mobile/Containers/Data/Application/757966CF-345C-4348-B07F-EEF83CF9A369/Library/Pandora/apps/HBuilder/doc/a.png"; 相对路径URL(RelativeURL) - 以"_"开头的相对路径,如"_doc/b.jpg"、"_documents/c.jpg"、"_downloads/d.jpg",注意不支持"_www"开头的路径; 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。 注意:如果设置的路径无权限访问,则返回失败。

(3)、overwrite: (Boolean 类型 )覆盖生成新文件。仅在dst制定的路径文件存在时有效: true表示覆盖存在的文件; false表示不覆盖,如果文件存在,则返回失败。 默认值为false。

(4)、format: (String 类型 )压缩转换后的图片格式。支持"jpg"、"png",如果未指定则使用源图片的格式。

(5)、quality: (Number 类型 )压缩图片的质量。取值范围为1-100,1表示使用最低的图片质量(转换后的图片文件最小)、100表示使用最高的图片质量(转换后的图片文件最大); 默认值为50。

(6)、width: (String 类型 )缩放图片的宽度。支持像素值(如"100px")、百分比(如"50%")、自动计算(如"auto",即根据height与源图高的缩放比例计算,若未设置height则使用源图高度); 默认值为"auto"。 注意:若设置了width属性值不合法(如"0px"),则不对图片进行缩放操作。

(7)、height: (String 类型 )缩放图片的高度。支持像素值(如"100px")、百分比(如"50%")、自动计算(如"auto",即根据width与源图宽的缩放比例计算,若未设置width则使用源图高度); 默认值为"auto"。 注意:若设置了height属性值不合法(如"0px"),则不对图片进行缩放操作。

(8)、rotate: (Number 类型 )旋转图片的角度。支持值:90-表示旋转90度;180-表示旋转180度;270-表示旋转270度。 注意:若设置rotate属性值不合法,则不对图片进行旋转操作。

(9)、clip: (ClipImageOptions 类型 )裁剪图片的区域。值参考ClipImageOptions定义,若设置clip属性值不合法,则不对图片进行裁剪操作。

2.2、ClipImageOptions: JSON对象,图片裁剪区域的参数

属性:

(1)、top: (String 类型 )图片裁剪区域与原图片上边界的偏移距离。支持像素值(如"10px")、百分比(如"10%");默认值为"0px"。 注意:如果top值超出原图片高度,则图片裁剪失败。

(2)、left: (Stirng 类型 )图片裁剪区域与原图片左边界的偏移距离。支持像素值(如"10px")、百分比(如"10%");默认值为"0px"。 注意:如果lef值超出原图片宽度,则图片裁剪失败。

(3)、width: (String 类型 )图片裁剪区域的宽度。支持像素值(如"100px")、百分比(如"50%")、自动计算(如"auto",即从left位置到图片右边界的宽度);默认值为"auto"。 注意:如果left值加width值超出原图片宽度,则使用"auto"值进行裁剪。

(4)、height: (String 类型 )图片裁剪区域的高度。支持像素值(如"100px")、百分比(如"50%")、自动计算(如"auto",即从top位置到图片下边界的高度);默认值为"auto"。 注意:如果top值加height值超出原图片高度,则使用"auto"值进行裁剪。

3、回调方法

3.1、CompressImageSuccessCallback: 图片压缩转换操作成功回调接口

void onSuccess( Event event ){

// Code here

var target = event.target; // 压缩转换后的图片url路径,以"file://"开头

var size = event.size; // 压缩转换后图片的大小,单位为字节(Byte)

var width = event.width; // 压缩转换后图片的实际宽度,单位为px

var height = event.height; // 压缩转换后图片的实际高度,单位为px

}

参数:

event: ( Event ) 可选 图片压缩转换后的图片信息。可通过event.target(String类型)获取压缩转换后的图片url路径,以"file://"开头,可直接在html页面中通过src属性引用,如Android平台"file:///storage/sdcard0/Android/data/io.dcloud.HBuilder/.HBuilder/apps/HBuilder/doc/a.jpg",iOS平台"file:///var/mobile/Containers/Data/Application/757966CF-345C-4348-B07F-EEF83CF9A369/Library/Pandora/apps/HBuilder/doc/a.png"; 可通过event.size(Number类型)获取压缩转换后图片的大小,单位为字节(Byte); 可通过event.width(Number类型)获取压缩转换后的图片的实际宽度,单位为px; 可通过event.height(Number类型)获取压缩转换后的图片的实际高度,单位为px。

返回值:void : 无

3.2、ZipSuccessCallback: 操作成功回调函数接口,在解压Zip文件或压缩成Zip文件成功时调用

void onSuccess(){

// Code here

}

返回值:void : 无

3.3、ZipErrorCallback: 操作错误回调函数接口,在解压Zip文件或压缩成Zip文件失败时调用

void onError(error){

// Handle the error

var code = error.code; // 错误编码

var message = error.message; // 错误描述信息

}

参数:error: ( Exception ) 可选 Zip操作的错误信息。可通过error.code(Number类型)获取错误编码; 可通过error.message(String类型)获取错误描述信息。

返回值:void : 无

你可能感兴趣的:(html5,zip,html5+,管理文件压缩和解压,HTML5+规范,Plus移动App)