zip

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

方法:

对象:

回调方法:

权限:

5+功能模块(permissions)

  1. {
  2. // ...
  3. "permissions":{
  4. // ...
  5. "Zip": {
  6. "description": "压缩与解压"
  7. }
  8. }
  9. }

compress

压缩生成Zip文件

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

参数:

  • src: (String)可选 要压缩的源文件路径,支持文件路径或目录
  • zipfile: (String)可选 压缩后保存的Zip文件路径
  • successCB: (ZipSuccessCallback)必选 压缩Zip文件操作成功回调,在压缩操作成功时调用
  • errorCB: (ZipErrorCallback)必选 压缩Zip文件操作失败回调,在压缩操作失败时调用

返回值:

void: 无

示例:

  1. //压缩
  2. function zipCompress(){
  3. var zipfile = "_doc/text11.zip";
  4. var targetPath = '_doc/dir/';
  5. plus.zip.compress(targetPath,zipfile,
  6. function() {
  7. alert("Compress success!");
  8. },function(error) {
  9. alert("Compress error!");
  10. });
  11. }

uni-app使用plus注意事项

decompress

解压缩Zip文件

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

参数:

  • zipfile: (String)可选 需解压Zip文件路径
  • target: (String)可选 解压Zip文件的目标路径,必须是路径
  • successCB: (ZipSuccessCallback)必选 解压Zip文件操作成功回调,在解压操作成功时调用。
  • errorCB: (ZipErrorCallback)必选 解压Zip文件操作失败回调,在解压操作失败时调用。

返回值:

void: 无

示例:

  1. //解压缩
  2. function zipDecompress() {
  3. var zipfile = "_doc/text.zip";
  4. var targetPath = '_doc/dir/';
  5. plus.zip.decompress(zipfile, targetPath,
  6. function() {
  7. alert("Decompress success!");
  8. },function(error) {
  9. alert("Compress error!");
  10. });
  11. }

uni-app使用plus注意事项

compressImage

图片压缩转换

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

说明:

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

参数:

返回值:

void: 无

示例:

  1. //压缩图片
  2. function compressImage(){
  3. plus.zip.compressImage({
  4. src:"_www/a.jpg",
  5. dst:"_doc/a.jpg",
  6. quality:20
  7. },
  8. function() {
  9. alert("Compress success!");
  10. },function(error) {
  11. alert("Compress error!");
  12. });
  13. }
  14. //缩放图片
  15. function zoomImage(){
  16. plus.zip.compressImage({
  17. src:"_www/a.jpg",
  18. dst:"_doc/a.jpg",
  19. width:"50%" // 缩小到原来的一半
  20. },
  21. function() {
  22. alert("Compress success!");
  23. },function(error) {
  24. alert("Compress error!");
  25. });
  26. }
  27. //旋转图片
  28. function rotateImage(){
  29. plus.zip.compressImage({
  30. src:"_www/a.jpg",
  31. dst:"_doc/a.jpg",
  32. rotate:90 // 旋转90度
  33. },
  34. function() {
  35. alert("Compress success!");
  36. },function(error) {
  37. alert("Compress error!");
  38. });
  39. }
  40. //裁剪图片
  41. function clipImage(){
  42. plus.zip.compressImage({
  43. src:"_www/a.jpg",
  44. dst:"_doc/a.jpg",
  45. clip:{top:"25%",left:"25%",width:"50%",height:"50%"} // 裁剪图片中心区域
  46. },
  47. function() {
  48. alert("Compress success!");
  49. },function(error) {
  50. alert("Compress error!");
  51. });
  52. }
  53. //格式转换
  54. function convertImage(){
  55. plus.zip.compressImage({
  56. src:"_www/a.jpg",
  57. dst:"_doc/a.png",
  58. format:"png" // 将jpg转换成png格式
  59. },
  60. function() {
  61. alert("Compress success!");
  62. },function(error) {
  63. alert("Compress error!");
  64. });
  65. }

uni-app使用plus注意事项

CompressImageOptions

JSON对象,配置图片压缩转换的参数

说明:

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

属性:

  • 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/jpeg、png等格式图片。
  • iOS - 5.0+ (支持): 支持jpg/jpeg、png、tif/tiff、gif、bmp、ico、cur、xbm等格式图片。
    • 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://”开头,后面跟随系统绝对路径。注意:如果设置的路径无权限访问,则返回失败。
  • overwrite: (Boolean类型)覆盖生成新文件仅在dst制定的路径文件存在时有效:true表示覆盖存在的文件;false表示不覆盖,如果文件存在,则返回失败。默认值为false。

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

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

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

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

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

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

ClipImageOptions

JSON对象,图片裁剪区域的参数

属性:

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

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

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

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

CompressImageSuccessCallback

图片压缩转换操作成功回调接口

  1. void onSuccess( Event event ){
  2. // Code here
  3. var target = event.target; // 压缩转换后的图片url路径,以"file://"开头
  4. var size = event.size; // 压缩转换后图片的大小,单位为字节(Byte)
  5. var width = event.width; // 压缩转换后图片的实际宽度,单位为px
  6. var height = event.height; // 压缩转换后图片的实际高度,单位为px
  7. }

参数:

  • 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: 无

ZipSuccessCallback

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

  1. void onSuccess(){
  2. // Code here
  3. }

参数:

返回值:

void: 无

ZipErrorCallback

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

  1. void onError(error){
  2. // Handle the error
  3. var code = error.code; // 错误编码
  4. var message = error.message; // 错误描述信息
  5. }

参数:

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

返回值:

void: 无