appApplet/jsFile/img/yy-img.js

192 lines
5.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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,//压缩质量范围0100数值越小质量越低压缩率越高仅对jpg有效
width:cutWidth,
height:cutHeight,
rotate:0,//旋转度数范围0360
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) {
// #ifdef APP-PLUS
uni.saveImageToPhotosAlbum({
filePath: src,
success:(resimg)=> {}
});
// #endif
// #ifdef MP-WEIXIN
let exist = src.slice(0,4);
if(exist=='http') {
uni.downloadFile({
url: src,
success: (res) => {
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: ()=> {},
fail: () => {
uni.showToast({title:'保存失败',icon:'error'})
}
});
}
})
} else {
wx.saveFile({
tempFilePath: src,
success:(wximg)=> {}
})
}
// #endif
},
/**
* @description 压缩图片
* @param {String} imgsrc
* @param {Number} quality 裁剪质量(1~100)默认80
* @param {Number} width 裁剪宽度,默认:不设置
* @param {Number} height 裁剪宽度,默认:不设置
* @param {Number} rotate 裁剪角度(0360)默认0
*/
compressImg(imgsrc, quality=80, width='', height='', rotate=0) {
return new Promise((resolve, reject)=>{
uni.compressImage({
src: imgsrc,
quality,//压缩质量范围0100数值越小质量越低压缩率越高仅对jpg有效
width,
height,
rotate,//旋转度数范围0360
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 裁剪角度(0360)默认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,//压缩质量范围0100数值越小质量越低压缩率越高仅对jpg有效
width:cutWidth,
height:cutHeight,
rotate:cutRotate,//旋转度数范围0360
success: res => {
resolve(res.tempFilePath)
}
})
}
})
})
}
}
export default imgTools;