Skip to content

图片

拍照

根据传入参数,决定是否对拍照后照片进行裁剪编辑, 同时会将图片上传到媒体中心并返回 mediaId。

使用说明

客户端AndroidiOS
支持情况支持支持
js
w6s.image.takePicture({
  editable: true,
  success: function(res) {},
  fail: function(err) {},
});

参数说明

参数类型说明
editableBoolean是否进行裁剪,适用于设置头像

返回数据

参数说明
mediaId上传媒体中心后返回的媒体id
imageURL压缩后图像存在本地的地址
key原图像存在本地的地址
imageInfo图片的基本信息,包括 height(高度)、width(宽度) 及 size(大小)

选择照片

调用手机相册,支持图片多选及单选,支持编辑剪裁(仅限于单选),并且支持图片复选,选择完后会自动上传到媒体中心并返回相应的 mediaId。

使用说明

客户端AndroidiOS
支持情况支持支持
js
w6s.image.chooseImages({
  multiple: false,
  imageKeys: ['file://图片本机地址'],
  editable: true,
  fileLimit: {
    maxSelectCount: 10,
    singleSelectSize: -1,
    totalSelectSize: -1,
  },
  success: function(res) {},
  fail: function(err) {},
});

参数说明

参数类型说明
multipleBoolean是否为图片多选
imageKeysArray[string]非必须,图片在本机的地址,用于图片复选
editableBoolean是否可对图片进行裁剪,仅在单选multiple: false时有效,默认为 true
fileLimit.maxSelectCountNumber非必须,多选时数量的限制,默认为 9
fileLimit.singleSelectSizeNumber非必须,单个文件选择大小限制(byte), -1表示不限制,默认为-1
fileLimit.totalSelectSizeNumber非必须,所有文件选择大小限制(byte), -1表示不限制,默认为-1

返回数据

参数说明
mediaId上传媒体中心后返回的媒体id
imageURL压缩后图像存在本地的地址
key原图像存在本地的地址
imageInfo图片的基本信息,包括 height(高度)、width(宽度) 及 size(大小)

清除缓存

拍照或选择照片后都会生成压缩图片,可调用该方法进行清除。

使用说明

客户端AndroidiOS
支持情况支持支持
js
// 该方法没有返回
w6s.image.cleanCompressImage();

图片预览

传入图片地址进行图片预览,支持传入 position 表示从第几张开始预览。

使用说明

客户端AndroidiOS
支持情况支持支持
js
// 该方法没有回调
w6s.image.showImages({
  urls: ['https://media.io/demo.png'],
  medias: ['媒体id'],
  position: 0,
});

参数说明

参数类型说明
urlsArray[String]图片的http(s)://访问地址,不支持本地图片
mediasArray[String]图片的 mediaId
positionNumber | String非必须,表示从第几张图片开始预览,0 为第一张

urlsmedias参数,只能二选一,如果同时传入,优先读取urls

图片保存

传入图片地址,保存到手机本地。

使用说明

客户端AndroidiOS
支持情况支持支持
js
// 该方法没有回调
w6s.image.saveImages({
  url: '图片的 url 访问地址',
  mediaId: '图片mediaId',
  imageData: 'base64数据',
});

参数说明

参数类型说明
urlString图片的 url 访问地址
mediaIdString图片mediaId
imageDataStringbase64数据

mediaId、url、imageData 都是选填参数, 请根据具体的业务场景, 进行选择,三者只能选其一。

长按图片弹出框

弹出框包括识别二维码保存图片等选项。

该功能的常用场景描述

例如需要识别页面图片上的二维码,通用的交互都是需要长按图片,然后会弹出一个Action Sheet提示框,然后用户进行选择操作。但这里的长按需要调用者自行实现,并且需要把被长按的图片转换成base64作为传参。

使用说明

客户端AndroidiOS
支持情况支持支持
js
// 该方法没有回调
w6s.image.actionForLongPressImage({
  imageData: 'base64数据',
});

参数说明

参数类型说明
imageDataStringbase64数据,详细描述请看下方说明

关于 imageData

页面上显示的图片通常都以http(s):// 的方式加载,或者本身就是个 base64 字符串。而参数 imageData 的值,并非是一个 image 直接转换过来的 base64 字符串,例如:

html
data:image/jpeg;base64,/9j/4AAQSkZJ....Rg

此处需要的是base64,后的那一段,也就是/9j/4AAQSkZJ....Rg

此外,sdk 中的image.toBase64方法并不能转换非本地的图片,如果需要转换以 http(s):// 协议访问的图片,请使用第三方模块,例如html2canvas

js
import html2canvas from 'html2canvas';

html2canvas(document.getElementById('body'))
  .then((canvas: any) => {
    const base64 = canvas.toDataURL("image/jpeg", 1).toString();
    const imageData  = base64.split('base64,')[1];
    
    sdk.image.actionForLongPressImage({
      imageData,
    });
  });

转 Base64

将本地图片转换成 Base64字符串。

提示

通常我们通过拍照或者打开相册来获取图片,而图片的访问地址都是本地绝对路径,基于 Webview 的安全机制,本地路径放到 <img> src 里,并不能显示出来,此时可以通过该方法把图片转换成 Base64 来使用。

注意,该方法仅支持转换本地图片。

使用说明

客户端AndroidiOS
支持情况支持支持
js
w6s.image.toBase64({
  filePath: '图片本地地址',
  success: function(res) {},
  fail: function(err) {},
});

参数说明

参数类型说明
filePathString图片本地地址

返回数据

参数说明
target._result在返回数据的 target 属性中,可以找到 key 值为 _result 的 base64 内容

图片添加水印

调起手机相册进行拍照,生成水印图片并返回。

使用说明

客户端AndroidiOS
支持情况支持支持
js
w6s.image.takePhotoAndAddWaterMark({
  content: 'test',
  fontSize: 14,
  color: '#FF5858',
  markDisable: false,
  timeEnable: true,
  locationEnable: true,
  success: function(res) {},
  fail: function(err) {},
});

参数说明

参数类型说明
contentString水印内容
fontSizeNumber | String水印字号大小
colorString水印字体颜色,仅支持HEX颜色码
markDisableBoolean非必须,屏蔽水印
timeEnableBoolean非必须,水印添加时间
locationEnableBoolean非必须,水印添加位置信息

返回数据

参数说明
mediaId上传媒体中心后返回的媒体id
imageURL压缩后图像存在本地的地址
key原图像存在本地的地址
imageInfo图片的基本信息,包括 height(高度)、width(宽度) 及 size(大小)