在uniapp中从本地相册选择图片或使用相机拍照

在uniapp中从本地相册选择图片或使用相机拍照,可以使用uniapp中内置的API uni.chooseImage 。

参数

名称 类型 必填 默认值 描述
options ChooseImageOptions - -
ChooseImageOptions 属性值
名称 类型 必备 默认值 描述
count number 9 最多可以选择的图片张数,app端不限制,微信小程序最多可支持20个。
sizeType Array<string> ['original','compressed'] original 原图,compressed 压缩图,默认二者都有
sourceType Array<string> ['album','camera'] album 从相册选图,camera 使用相机,默认二者都有
extension Array<string> - 根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。仅H5支持
crop ChooseImageCropOptions - 图像裁剪参数,设置后 sizeType 失效。
success (callback: ChooseImageSuccessCallback) => void - 成功则返回图片的本地文件路径列表 tempFilePaths
fail (callback: UniError) => void - 接口调用失败的回调函数
complete (callback: any) => void - 接口调用结束的回调函数(调用成功、失败都会执行)
ChooseImageCropOptions 属性值
名称 类型 必备 默认值 描述
width number - 裁剪的宽度,单位为px,用于计算裁剪宽高比。
height number - 裁剪的高度,单位为px,用于计算裁剪宽高比。
quality number 80 取值范围为1-100,数值越小,质量越低(仅对jpg格式有效)。默认值为80。
resize boolean - 是否将width和height作为裁剪保存图片真实的像素值。默认值为true。注:设置为false时在裁剪编辑界面显示图片的像素值,设置为true时不显示。
ChooseImageSuccessCallback 属性值
名称 类型 必备 默认值 描述
errSubject string - 调用API的名称
errMsg string - -
tempFilePaths Array<string> - -
tempFiles any - -

chooseImage 兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
4.4 3.9+ - - -

具体代码实现

<template>
  <view>
    <button @click="chooseImage">选择图片</button>
    <image v-for="(image, index) in images" :src="image" :key="index" mode="aspectFit"></image>
  </view>
</template>

<script>
export default {
  data() {
    return {
      images: [] // 存储选择的图片路径
    };
  },
  methods: {
    chooseImage() {
      uni.chooseImage({
        count: 6,  // 图片数量,这里设置为6
        sizeType: ['original', 'compressed'], // 指定选择的图片类型,可以选择原图和压缩图,这里设置为二者都有
        sourceType: ['album', 'camera'], // 指定选择图片的来源,这里设置为相册和相机
        success: (res) => {
          this.images.push(res.tempFilePaths);
        },
        fail: (err) => {
          console.log('选择图片失败', err);
        }
      });
    }
  }
};
</script>

猜你喜欢

转载自blog.csdn.net/weixin_53156345/article/details/134051953