import Taro from '../../index' declare module '../../index' { namespace saveImageToPhotosAlbum { interface Option { /** 图片文件路径,可以是临时文件路径或永久文件路径,不支持网络图片路径 */ filePath: string /** 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: (res: TaroGeneral.CallbackResult) => void /** 接口调用失败的回调函数 */ fail?: (res: TaroGeneral.CallbackResult) => void /** 接口调用成功的回调函数 */ success?: (res: TaroGeneral.CallbackResult) => void } } namespace previewImage { interface Option { /** 需要预览的图片链接列表。 */ urls: string[] /** * 当前显示图片的http链接 */ current?: string | number /** * 是否支持长按下载图片 * @supported alipay 基础库: 1.13.0 */ enablesavephoto?: boolean /** * 是否在右下角显示下载入口 * @supported alipay 基础库: 1.13.0 */ enableShowPhotoDownload?: boolean /** @supported weapp 最低版本:2.13.0。是否显示长按菜单,默认值:true */ showmenu?: boolean /** @supported weapp 最低版本:2.13.0。origin: 发送完整的referrer; no-referrer: 不发送。格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本;默认值:no-referrer */ referrerPolicy?: string /** 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: (res: TaroGeneral.CallbackResult) => void /** 接口调用失败的回调函数 */ fail?: (res: TaroGeneral.CallbackResult) => void /** 接口调用成功的回调函数 */ success?: (res: TaroGeneral.CallbackResult) => void } } namespace previewMedia { interface Sources { /** 图片或视频的地址 */ url: string /** 资源的类型(图片或视频),默认值:image */ type?: 'image' | 'video' /** 视频的封面图片 */ poster?: string } interface Option { /** 需要预览的资源列表 */ sources: Sources[] /** 当前显示的资源序号,默认值:0 */ current?: number /** 是否显示长按菜单 2.13.0,默认值:true */ showmenu?: boolean /** origin: 发送完整的referrer; no-referrer: 不发送。格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本;默认值:no-referrer */ referrerPolicy?: string /** 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: (res: TaroGeneral.CallbackResult) => void /** 接口调用失败的回调函数 */ fail?: (res: TaroGeneral.CallbackResult) => void /** 接口调用成功的回调函数 */ success?: (res: TaroGeneral.CallbackResult) => void } } namespace getImageInfo { interface Option { /** 图片的路径,可以是相对路径、临时文件路径、存储文件路径、网络图片路径 */ src: string /** 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: (res: TaroGeneral.CallbackResult) => void /** 接口调用失败的回调函数 */ fail?: (res: TaroGeneral.CallbackResult) => void /** 接口调用成功的回调函数 */ success?: (result: SuccessCallbackResult) => void } interface SuccessCallbackResult extends TaroGeneral.CallbackResult { /** 图片原始高度,单位px。不考虑旋转。 */ height: number /** [拍照时设备方向](http://sylvana.net/jpegcrop/exif_orientation.html) * @default "up" */ orientation: keyof Orientation /** 图片的本地路径 */ path: string /** 图片格式 */ type: string /** 图片原始宽度,单位px。不考虑旋转。 */ width: number /** 调用结果 */ errMsg: string } interface Orientation { /** 默认方向(手机横持拍照),对应 Exif 中的 1。或无 orientation 信息。 */ 'up' /** 同 up,但镜像翻转,对应 Exif 中的 2 */ 'up-mirrored' /** 旋转180度,对应 Exif 中的 3 */ 'down' /** 同 down,但镜像翻转,对应 Exif 中的 4 */ 'down-mirrored' /** 同 left,但镜像翻转,对应 Exif 中的 5 */ 'left-mirrored' /** 顺时针旋转90度,对应 Exif 中的 6 */ 'right' /** 同 right,但镜像翻转,对应 Exif 中的 7 */ 'right-mirrored' /** 逆时针旋转90度,对应 Exif 中的 8 */ 'left' } } namespace editImage { interface Option { /** 图片路径,图片的路径,支持本地路径、代码包路径 */ src: string /** 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: (res: TaroGeneral.CallbackResult) => void /** 接口调用失败的回调函数 */ fail?: (res: TaroGeneral.CallbackResult) => void /** 接口调用成功的回调函数 */ success?: (result: SuccessCallbackResult) => void } interface SuccessCallbackResult extends TaroGeneral.CallbackResult { /** 编辑后图片的临时文件路径 (本地路径) */ tempFilePath: string } } namespace chooseImage { interface Option { /** 最多可以选择的图片张数 * @default 9 * @supported weapp, alipay, swan, tt, h5, rn */ count?: number /** 所选的图片的尺寸 * @default ['original', 'compressed'] * @supported weapp, alipay, swan, tt, rn */ sizeType?: Array /** 选择图片的来源 * @default ['album', 'camera'] * @supported weapp, alipay, swan, tt, h5, rn */ sourceType?: Array /** 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: (res: TaroGeneral.CallbackResult) => void /** 接口调用失败的回调函数 */ fail?: (res: TaroGeneral.CallbackResult) => void /** 接口调用成功的回调函数 */ success?: (result: SuccessCallbackResult) => void /** 用来上传的input元素ID(仅h5端 * @supported h5 */ imageId?: string } /** 图片的尺寸 */ interface sizeType { /** 原图 */ original /** compressed */ compressed } /** 图片的来源 */ interface sourceType { /** 从相册选图 */ album /** 使用相机 */ camera /** 使用前置摄像头(仅H5纯浏览器使用) */ user /** 使用后置摄像头(仅H5纯浏览器) */ environment } interface SuccessCallbackResult extends TaroGeneral.CallbackResult { /** 图片的本地临时文件路径列表 */ tempFilePaths: string[] /** 图片的本地临时文件列表 */ tempFiles: ImageFile[] /** 调用结果 */ errMsg: string } /** 图片的本地临时文件列表 */ interface ImageFile { /** 本地临时文件路径 */ path: string /** 本地临时文件大小,单位 B */ size: number /** 文件的 MIME 类型 * @supported h5 */ type?: string /** 原始的浏览器 File 对象 * @supported h5 */ originalFileObj?: File } } namespace compressImage { interface Option { /** 图片路径,图片的路径,可以是相对路径、临时文件路径、存储文件路径 */ src: string /** 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: (res: TaroGeneral.CallbackResult) => void /** 接口调用失败的回调函数 */ fail?: (res: TaroGeneral.CallbackResult) => void /** 压缩质量,范围0~100,数值越小,质量越低,压缩率越高(仅对jpg有效)。 */ quality?: number /** 压缩后图片的宽度,单位为px,若不填写则默认以 compressedHeight 为准等比缩放。 */ compressedWidth?: number /** 压缩后图片的高度,单位为px,若不填写则默认以 compressedWidth 为准等比缩放。 */ compressedHeight?: number /** 接口调用成功的回调函数 */ success?: (result: SuccessCallbackResult) => void } interface SuccessCallbackResult extends TaroGeneral.CallbackResult { /** 压缩后图片的临时文件路径 */ tempFilePath: string /** 调用结果 */ errMsg: string } } namespace chooseMessageFile { interface Option { /** 最多可以选择的文件个数,可以 0~100 */ count: number /** 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: (res: TaroGeneral.CallbackResult) => void /** 根据文件拓展名过滤,仅 type==file 时有效。每一项都不能是空字符串。默认不过滤。 */ extension?: string[] /** 接口调用失败的回调函数 */ fail?: (res: TaroGeneral.CallbackResult) => void /** 接口调用成功的回调函数 */ success?: (result: SuccessCallbackResult) => void /** 所选的文件的类型 */ type?: keyof SelectType } interface SuccessCallbackResult extends TaroGeneral.CallbackResult { /** 返回选择的文件的本地临时文件对象数组 */ tempFiles: ChooseFile[] /** 调用结果 */ errMsg: string } /** 返回选择的文件的本地临时文件对象数组 */ interface ChooseFile { /** 选择的文件名称 */ name: string /** 本地临时文件路径 */ path: string /** 本地临时文件大小,单位 B */ size: number /** 选择的文件的会话发送时间,Unix时间戳,工具暂不支持此属性 */ time: number /** 选择的文件类型 */ type: keyof SelectedType } interface SelectType { /** 从所有文件选择 */ all /** 只能选择视频文件 */ video /** 只能选择图片文件 */ image /** 可以选择除了图片和视频之外的其它的文件 */ file } interface SelectedType { /** 选择了视频文件 */ video /** 选择了图片文件 */ image /** 选择了除图片和视频的文件 */ file } } namespace cropImage { interface Option { /** 图片路径,图片的路径,支持本地路径、代码包路径 */ src: string /** 裁剪比例 */ cropScale: keyof CropScale /** 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: (res: TaroGeneral.CallbackResult) => void /** 接口调用失败的回调函数 */ fail?: (res: TaroGeneral.CallbackResult) => void /** 接口调用成功的回调函数 */ success?: (result: SuccessCallbackResult) => void } interface SuccessCallbackResult extends TaroGeneral.CallbackResult { /** 剪裁后图片的临时文件路径 (本地路径) */ tempFilePath: string } interface CropScale { /** 宽高比为1比1 */ '1:1' /** 宽高比为3比4 */ '3:4' /** 宽高比为4比3 */ '4:3' /** 宽高比为4比5 */ '4:5' /** 宽高比为5比4 */ '5:4' /** 宽高比为9比16 */ '9:16' /** 宽高比为16比9 */ '16:9' } } interface TaroStatic { /** 保存图片到系统相册。需要[用户授权](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html) scope.writePhotosAlbum * @supported weapp, alipay, swan, tt, h5, rn, harmony_hybrid * @example * ```tsx * Taro.saveImageToPhotosAlbum({ * success: function (res) { } * }) * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.saveImageToPhotosAlbum.html */ saveImageToPhotosAlbum(option: saveImageToPhotosAlbum.Option): Promise /** 预览图片和视频。 * @supported weapp * @example * ```tsx * Taro.previewMedia({ * sources: [] * }) * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.previewMedia.html */ previewMedia(option: previewMedia.Option): Promise /** 在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。 * @supported weapp, alipay, swan, tt, h5, rn, harmony_hybrid * @example * ```tsx * Taro.previewImage({ * current: '', // 当前显示图片的http链接 * urls: [] // 需要预览的图片http链接列表 * }) * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.previewImage.html */ previewImage(option: previewImage.Option): Promise /** 获取图片信息。网络图片需先配置download域名才能生效。 * @supported weapp, alipay, swan, tt, h5, rn, harmony, harmony_hybrid * @example * ```tsx * Taro.getImageInfo({ * src: 'images/a.jpg', * success: function (res) { * console.log(res.width) * console.log(res.height) * } * }) * Taro.chooseImage({ * success: function (res) { * Taro.getImageInfo({ * src: res.tempFilePaths[0], * success: function (res) { * console.log(res.width) * console.log(res.height) * } * }) * } * }) * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.getImageInfo.html */ getImageInfo(option: getImageInfo.Option): Promise /** 编辑图片接口 * @supported weapp * @example * ```tsx * Taro.editImage({ * src: '', // 图片路径 * }) * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.editImage.html */ editImage(option: editImage.Option): Promise /** 压缩图片接口,可选压缩质量 * @supported weapp, tt, rn * @example * ```tsx * Taro.compressImage({ * src: '', // 图片路径 * quality: 80 // 压缩质量 * }) * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.compressImage.html */ compressImage(option: compressImage.Option): Promise /** 从客户端会话选择文件。 * @supported weapp * @example * ```tsx * Taro.chooseMessageFile({ * count: 10, * type: 'image', * success: function (res) { * // tempFilePath可以作为img标签的src属性显示图片 * const tempFilePaths = res.tempFiles * } * }) * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseMessageFile.html */ chooseMessageFile(option: chooseMessageFile.Option): Promise /** * 从本地相册选择图片或使用相机拍照。 * @supported weapp, alipay, swan, tt, h5, rn, harmony_hybrid * @example * ```tsx * Taro.chooseImage({ * count: 1, // 默认9 * sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 * sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有,在H5浏览器端支持使用 `user` 和 `environment`分别指定为前后摄像头 * success: function (res) { * // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 * var tempFilePaths = res.tempFilePaths * } * }) * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html */ chooseImage(option: chooseImage.Option): Promise /** * 裁剪图片接口 * @supported weapp * @example * ```tsx * Taro.cropImage({ * src: '', // 图片路径 * cropScale: '1:1', // 裁剪比例 * success: function (res) { * // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 * var tempFilePaths = res.tempFilePaths * } * }) * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.cropImage.html */ cropImage(option: cropImage.Option): Promise } }