本文介绍了ReactJS:上传前调整图片大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的reactJs项目中,我需要在上载图像之前对其进行调整大小.
In my reactJs project, I need to resize image before uploading it.
我正在使用 react-image-file-resizer 库有一个简单的例子,但对我不起作用.
I am using react-image-file-resizer library which has a simple example but not working for me.
我已经尝试过了,但是结果显示为空白.我在做什么错了?
I have tried this but its shows me blank result. What am I doing wrong?
var imageURI = '';
const resizedImg = await Resizer.imageFileResizer(
fileList.fileList[0].originFileObj,
300,
300,
'JPEG',
100,
0,
uri => {
imageURI = uri
console.log(uri ) // this show the correct result I want but outside of this function
},
'blob'
);
console.log(resizedImg)
console.log(imageURI)
// upload new image
...uploading image here..
如果我在URI函数中执行imgRef.put(uri);
,则图片上传有效.但是我需要在该功能之外执行此操作.
If I do imgRef.put(uri);
inside URI function then image upload works. but I need to do that outside of that function.
如何在imageURI变量中获取结果并在以后重用?
how to get result in imageURI variable and reuse it later ?
推荐答案
好,我使用 compres.js 库.
async function resizeImageFn(file) {
const resizedImage = await compress.compress([file], {
size: 2, // the max size in MB, defaults to 2MB
quality: 1, // the quality of the image, max is 1,
maxWidth: 300, // the max width of the output image, defaults to 1920px
maxHeight: 300, // the max height of the output image, defaults to 1920px
resize: true // defaults to true, set false if you do not want to resize the image width and height
})
const img = resizedImage[0];
const base64str = img.data
const imgExt = img.ext
const resizedFiile = Compress.convertBase64ToFile(base64str, imgExt)
return resizedFiile;
}
它返回一个要上传到服务器的文件.
it return a file to be uploaded to server.
这篇关于ReactJS:上传前调整图片大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!