const imgTools = {
	/**
	 * @description 图片多选，并返回图片数组
	 * @param {Number} count 1
	 */
	chooseImg(count=1) {
		return new Promise((resolve,reject)=>{
			let imgArr = [];
			uni.chooseImage({
				count:count,
				sizeType:['compressed'],
				sourceType:['album'],
				success: (res) => {
					let files = res.tempFilePaths
					files.forEach(item=>{
						imgArr.push(item);
					})
					resolve(imgArr);
				}
			})
		})
	},
	/**
	 * @description 选择图片并压缩图片
	 * @param {Number} cutQuality 80
	 * @param {Number} cutWidth 200
	 * @param {Number} cutWidth 200
	 */
	chooseCompressImg(cutQuality=80,cutWidth=200,cutHeight=200) {
		return new Promise((resolve, reject) => {
			uni.chooseImage({
				count:1,
				sourceType:['album','camera'],
				extension:['png'],//选择图片类型
				crop:{//图像裁剪参数，设置后 sizeType 失效
					quality:cutQuality,//1~100
					width:cutWidth,
					height:cutHeight,
					resize:false//是否将width和height作为裁剪保存图片真实的像素值。默认值为true。注：设置为false时在裁剪编辑界面显示图片的像素值，设置为true时不显示
				},
				success: (res) => {
					uni.compressImage({
						src: res.tempFilePaths[0],
						quality:100,//压缩质量，范围0～100，数值越小，质量越低，压缩率越高（仅对jpg有效）
						width:cutWidth,
						height:cutHeight,
						rotate:0,//旋转度数，范围0～360
						success: res => {
							resolve(res.tempFilePath)
						}
					})
				}
			})
		})
	},
	/**
	 * @description 预览图片
	 * @param {Number} current 0
	 * @param {Array} imgArr []
	 */
	previewImg(current=0,imgArr=[]) {
		uni.previewImage({
			current:current,
			urls: imgArr,
			indicator:'number',//图片指示器样式，可取值："default" - 底部圆点指示器； "number" - 顶部数字指示器； "none" - 不显示指示器。
			loop:false,//是否可循环预览，默认值为 false
			longPressActions: {
				itemList: ['发送给朋友', '保存图片', '收藏'],
				itemColor:'#000000',//按钮的文字颜色，字符串格式，默认为"#000000"
				success:(data)=> {
					// console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
					switch (data.tapIndex){
						case 0:
						// 发送给朋友
							break;
						case 1:
						// 保存图片
						this.saveImg(imgArr[data.index]);
							break;
						case 2:
						// 收藏
							break;
					}
				}
			}
		});
	},
	/**
	 * @description 保存图片
	 * @param {String} src
	 */
	saveImg(src) {
		uni.saveImageToPhotosAlbum({
			filePath: src,
			success: ()=> {}
		});
	},
	/**
	 * @description 压缩图片
	 * @param {String} imgsrc
	 * @param {Number} quality 裁剪质量(1~100)，默认：80
	 * @param {Number} width 裁剪宽度，默认：不设置
	 * @param {Number} height 裁剪宽度，默认：不设置
	 * @param {Number} rotate 裁剪角度(0～360)，默认：0
	 */
	compressImg(imgsrc, quality=80, width='', height='', rotate=0) {
		return new Promise((resolve, reject)=>{
			uni.compressImage({
				src: imgsrc,
				quality,//压缩质量，范围0～100，数值越小，质量越低，压缩率越高（仅对jpg有效）
				width,
				height,
				rotate,//旋转度数，范围0～360
				success: res => {
					resolve(res.tempFilePath);
				}
			})
		})
	},
	/**
	 * @description 获取图片信息
	 * @param {String} src 
	 */
	getImgInfo(src) {
		return new Promise((resolve, reject)=>{
			uni.getImageInfo({
				src,
				success: (image)=> {
					resolve(image)
				}
			});
		})
	},
	/**
	 * @description 选择并裁剪图片
	 * @param {Number} cutQuality 裁剪质量(1~100)，默认：100
	 * @param {Number} cutWidth 裁剪宽度，默认：200
	 * @param {Number} cutHeight 裁剪高度，默认：200
	 * @param {Number} cutRotate 裁剪角度(0～360)，默认：0
	 */
	cutImg(cutQuality=100,cutWidth=200,cutHeight=200, cutRotate=0) {
		return new Promise((resolve, reject)=>{
			uni.chooseImage({
				count:1,
				sourceType:['album','camera'],
				crop:{//图像裁剪参数，设置后 sizeType 失效
					quality:cutQuality,//1~100
					width:cutWidth,
					height:cutHeight,
					resize:false//是否将width和height作为裁剪保存图片真实的像素值。默认值为true。注：设置为false时在裁剪编辑界面显示图片的像素值，设置为true时不显示
				},
				success: (res) => {
					uni.compressImage({
						src: res.tempFilePaths[0],
						quality:100,//压缩质量，范围0～100，数值越小，质量越低，压缩率越高（仅对jpg有效）
						width:cutWidth,
						height:cutHeight,
						rotate:cutRotate,//旋转度数，范围0～360
						success: res => {
							resolve(res.tempFilePath)
						}
					})
				}
			})
		})
	}
}
export default imgTools;