uniapp选取本地资源(图片,视频,文件)

1. uni.chooseImage(OBJECT)

从本地相册选择图片或使用相机拍照。

App端如需要更丰富的相机拍照API(如直接调用前置摄像头),参考plus.camera

OBJECT 参数说明

参数名类型必填说明平台差异说明
countNumber最多可以选择的图片张数,默认9见下方说明
sizeTypeArray<String>original 原图,compressed 压缩图,默认二者都有App、微信小程序、支付宝小程序、百度小程序
extensionArray<String>根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。H5(HBuilder X2.9.9+)
sourceTypeArray<String>album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
successFunction成功则返回图片的本地文件路径列表 tempFilePaths
failFunction接口调用失败的回调函数小程序、App
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

Tips

  • count 值在 H5 平台的表现,基于浏览器本身的规范。目前测试的结果来看,只能限制单选/多选,并不能限制数量。并且,在实际的手机浏览器很少有能够支持多选的。
  • sourceType 在H5端对应inputcapture属性,设置为['album']无效,依然可以使用相机。
  • 可以通过用户授权API来判断用户是否给应用授予相册或摄像头的访问权限uni.authorize(OBJECT) | uni-app官网
  • App端如需选择非媒体文件,可在插件市场搜索文件选择,其中Android端可以使用Native.js,无需原生插件,而iOS端需要原生插件。

注:文件的临时路径,在应用本次启动期间可以正常使用,如需持久保存,需在主动调用 uni.saveFile,在应用下次启动时才能访问得到。

success 返回参数说明

参数类型说明
tempFilePathsArray<String>图片的本地文件路径列表
tempFilesArray<Object>、Array<File>图片的本地文件列表,每一项是一个 File 对象

File 对象结构如下

参数类型说明
pathString本地文件路径
sizeNumber本地文件大小,单位:B
nameString包含扩展名的文件名称,仅H5支持
typeString文件类型,仅H5支持

示例

uni.chooseImage({
    count: 6, //默认9
    sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album'], //从相册选择
    success: function (res) {
        console.log(JSON.stringify(res.tempFilePaths));
    }
});

2. uni.previewImage(OBJECT) @unipreviewimageobject

预览图片。

OBJECT 参数说明

参数名类型必填说明平台差异说明
currentString/Number详见下方说明详见下方说明
urlsArray<String>需要预览的图片链接列表
indicatorString图片指示器样式,可取值:”default” - 底部圆点指示器; “number” - 顶部数字指示器; “none” - 不显示指示器。App
loopBoolean是否可循环预览,默认值为 falseApp
longPressActionsObject长按图片显示操作菜单,如不填默认为保存相册App 1.9.5+
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

current 参数说明

1.9.5+ 支持传图片在 urls 中的索引值

current 为当前显示图片的链接/索引值,不填或填写的值无效则为 urls 的第一张。App平台在 1.9.5至1.9.8之间,current为必填。不填会报错

注意,当 urls 中有重复的图片链接时:

  • 传链接,预览结果始终显示该链接在 urls 中第一次出现的位置。
  • 传索引值,在微信/百度/字节跳动小程序平台,会过滤掉传入的 urls 中该索引值之前与其对应图片链接重复的值。其它平台会保留原始的 urls 不会做去重处理。

举例说明:

一组图片 [A, B1, C, B2, D],其中 B1 与 B2 的图片链接是一样的。

  • 传 B2 的链接,预览的结果是 B1,前一张是 A,下一张是 C。
  • 传 B2 的索引值 3,预览的结果是 B2,前一张是 C,下一张是 D。此时在微信/百度/字节跳动小程序平台,最终传入的 urls 是 [A, C, B2, D],过滤掉了与 B2 重复的 B1。

longPressActions 参数说明

参数类型必填说明
itemListArray<String>按钮的文字数组
itemColorString按钮的文字颜色,字符串格式,默认为”#000000”
successFunction接口调用成功的回调函数,详见返回参数说明
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明

参数类型说明
indexNumber用户长按图片的索引值
tapIndexNumber用户点击按钮列表的索引值

示例

// 从相册选择6张图
uni.chooseImage({
    count: 6,
    sizeType: ['original', 'compressed'],
    sourceType: ['album'],
    success: function(res) {
        // 预览图片
        uni.previewImage({
            urls: res.tempFilePaths,
            longPressActions: {
                itemList: ['发送给朋友', '保存图片', '收藏'],
                success: function(data) {
                    console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
                },
                fail: function(err) {
                    console.log(err.errMsg);
                }
            }
        });
    }
    });

TIPS

  • 在非H5端,previewImage是原生实现的,界面自定义灵活度较低。
  • 插件市场有前端实现的previewImage,性能低于原生实现,但界面可随意定义;插件市场也有适于App端的previewImage原生插件,提供了更多功能。

3. uni.chooseMedia(OBJECT)

拍摄或从手机相册中选择图片或视频。

若选择和上传非图像、视频文件,另行参考:https://uniapp.dcloud.io/api/media/file。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序字节跳动小程序、飞书小程序QQ小程序快手小程序京东小程序
xx2.10.0+xxxx

OBJECT 参数说明

参数名类型默认值必填说明
countNumber9(注意:ios不可大于9)最多可以选择的文件个数
mediaTypeArray.[‘image’, ‘video’]文件类型
sourceTypeArray.[‘album’, ‘camera’]图片和视频选择的来源
maxDurationNumber10拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 30s 之间
sizeTypeArray.[‘original’, ‘compressed’]仅对 mediaType 为 image 时有效,是否压缩所选文件
cameraString‘back’仅在 sourceType 为 camera 时生效,使用前置或后置摄像头
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

OBJECT.mediaType 合法值

说明
image只能拍摄图片或从相册选择图片
video只能拍摄视频或从相册选择视频
mix可同时选择图片和视频

OBJECT.sourceType 合法值

说明
album从相册选择
camera使用相机拍摄

OBJECT.camera 合法值

说明
back使用后置摄像头
front使用前置摄像头

success 返回参数说明

参数名类型说明
tempFilesArray.本地临时文件列表
typeString文件类型,有效值有 image 、video、mix

res.tempFiles 的结构

参数名类型说明
tempFilePathString本地临时文件路径 (本地路径)
sizeNumber本地临时文件大小,单位 B
durationNumber视频的时间长度
heightNumber视频的高度
widthNumber视频的宽度
thumbTempFilePathString视频缩略图临时文件路径
fileTypeString文件类型

fileType 合法值

说明
image图片
video视频

示例

uni.chooseMedia({
  count: 9,
  mediaType: ['image','video'],
  sourceType: ['album', 'camera'],
  maxDuration: 30,
  camera: 'back',
  success(res) {
    console.log(res.tempFiles)
  }
})

Tips

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 你可以使用Python的Pillow库来选择本地图片。以下是一个简单的示例代码: ```python from PIL import ImageTk, Image import tkinter as tk from tkinter import filedialog # 创建一个Tkinter窗口 root = tk.Tk() # 隐藏窗口 root.withdraw() # 打开文件选择对话框 file_path = filedialog.askopenfilename() # 打开图片 image = Image.open(file_path) # 显示图片 image.show() ``` 在这个示例代码中,我们使用了Pillow库中的`Image`类来打开并显示本地图片。我们还使用了Tkinter库来创建一个简单的窗口,并使用`filedialog`模块来选择本地图片文件。请注意,此代码仅适用于Python的桌面应用程序开发。 ### 回答2: 在python中,我们可以使用PIL库来选取本地图片。首先,我们需要确保已经安装了PIL库。可以使用以下命令来安装: pip install pillow 在安装完成后,我们可以使用以下代码来选取本地图片: ```python from PIL import Image from tkinter import Tk from tkinter.filedialog import askopenfilename # 创建一个Tkinter窗口 Tk().withdraw() # 弹出文件选择对话框,允许用户选择图片文件 filename = askopenfilename() # 打开选取图片文件 image = Image.open(filename) # 进行后续处理,如显示图片、处理图片等等 image.show() ``` 首先,我们导入了PIL库和Tkinter模块中的Tk和askopenfilename函数。 然后,我们创建了一个Tkinter窗口,并调用withdraw函数来隐藏该窗口,使其不可见。 接下来,我们调用askopenfilename函数弹出文件选择对话框,允许用户选择图片文件,并将选择图片文件的路径保存到filename变量中。 最后,我们使用Image.open函数打开选取图片文件,并将其赋值给image变量。此时,我们可以对image进行后续处理,如显示图片、处理图片等等。 以上就是使用python选取本地图片的简单方法。 ### 回答3: 在Python中选取本地图片可以使用Pillow库。Pillow是Python Imaging Library(PIL)的一个分支,提供了处理图像的丰富功能。 首先,需要确保安装了Pillow库。可以使用以下命令在命令行中安装Pillow: ``` pip install pillow ``` 接下来,可以使用以下代码选取本地图片: ```python from PIL import Image from tkinter import Tk, filedialog # 创建一个Tkinter窗口 root = Tk() root.withdraw() # 弹出文件选择对话框,选取本地图片 file_path = filedialog.askopenfilename() # 打开选取图片 image = Image.open(file_path) ``` 首先,导入了`Image`类和`Tk`类以及`filedialog`模块。然后,创建了一个`Tk`对象,并隐藏了Tkinter窗口。接下来,使用`filedialog.askopenfilename()`弹出了文件选择对话框,供用户选择本地图片选取图片后,返回的文件路径存储在`file_path`变量中。最后,通过`Image.open()`打开了选取图片。 这样,就可以使用Pillow库选取本地图片了。选取图片后,你可以对其进行各种操作,比如调整大小、剪切、修改颜色等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值