前言
需求:项目当中上传图片的需求点肯定有很多,再上传之后,如果图片很大的话,在加载的时候就会很慢。最近发现系统首次加载越来越慢,就开始思考怎么能降低这个加载时间,由于首页图片很多,所以图片的大小就需要进行处理,本文记录了上传图片之前压缩图片的各种方法。
1. 安装依赖:
2.页面当中引入:
3.使用:
// 上传之前的钩子函数
beforeUpload(file) {// 判断是图片
const isJpgOrPng = file.type === ‘image/jpeg‘ || file.type === ‘image/png‘;
if (!isJpgOrPng) {
console.log(‘上传头像图片只能是 JPG 或 PNG 格式!’);
return false;
}
return new Promise((resolve) => {
// 压缩到100KB,这里的100就是要压缩的大小,可自定义
imageConversion.compressAccurately(file, 100).then(res => {
console.log(res)
resolve(res);
});
})
}
二、canvas
1.上传组件方法:
methods: {
// 文件上传成功
this
.imgs.push({ name: res.data, url:
this
.$fileUrl_ +
'/'
+ res.data, path: res.data })
}
else
{
console.error(
'文件上传失败'
, res.msg)
}
},
// 上传文件之前
if
(file.size / 1024 / 1024 > 2) {
return
new
Promise(resolve => {
const reader =
new
FileReader()
image.onload = (imageEvent) => {
const canvas = document.createElement(
'canvas'
)
// 创建画布
const context = canvas.getContext(
'2d'
)
// 画布为2d
const width = image.width * that.quality
// 图片宽度 * 压缩比例
const height = image.height * that.quality
// 图片高度 * 压缩比例
canvas.height = height
// 画布宽度
context.clearRect(0, 0, width, height)
context.drawImage(image, 0, 0, width, height)
const dataUrl = canvas.toDataURL(file.type)
//图片转路径
const blobData = that.dataURLtoBlob(dataUrl, file.type)
//图片转二进制
}
reader.onload = e => { image.src = e.target.result }
})
}
else
{
}
},
//图片转二进制
dataURLtoBlob(dataURL, type) {
var
binary = atob(dataURI.split(
','
)[1])
for
(
var
i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i))
}
return
new
Blob([
new
Uint8Array(array)], { type: type })
},
// 图片移除
handleRemove(file, fileList) {
const arr = []
fileList.forEach(r => {
})
},
// 图片预览
handlePictureCardPreview(file) {
this
.dialogImageUrl = file.url
},
}
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
原文地址:https://blog.csdn.net/an_jia_ning/article/details/129177011
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_32828.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!