javascript - 如何更改图像质量
问题描述
设置图像质量/dpi的参数
我有一个特定像素大小的图像。在保存它之前,我需要降低它的质量(不改变它的像素大小)。
我将图像发送到以下功能。如果我想将质量降低到 87% - 我该怎么做?
function defineNewImgFile(image) {
let imgBlob = base64ImageToBlob(image);
let newFile = new File([imgBlob], image, {
type: typeOfImg
});
return newFile;
}
//changes base64 format
let typeOfImg;
function base64ImageToBlob(str) {
let pos = str.indexOf(';base64,');
let type = str.substring(5, pos);
typeOfImg = type;
let b64 = str.substr(pos + 8);
let imageContent = atob(b64);
let buffer = new ArrayBuffer(imageContent.length);
let view = new Uint8Array(buffer);
for (let n = 0; n < imageContent.length; n++) {
view[n] = imageContent.charCodeAt(n);
}
let blob = new Blob([view], {
type: type
});
return blob;
}
解决方案
对于图像压缩,您可以使用Sharp
推荐阅读
- typescript - 为具有所有可选属性的接口创建类型保护
- java - 使用 Spring 解析和使用 HTTP Range 标头
- macos - Mac 终端说:“无法打开显示...正在中止”
- python - Python 脚本 - 在请求模块中传递字符串参数失败(Curl 命令)
- android - 如何在没有上下文的情况下在应用程序的任何位置显示对话框?
- javascript - React useEffect 警告:超过最大更新深度。有没有解决的办法?
- html - 自定义复选框不正确
- java - 在另一个异步任务中执行异步任务
- android - Andriod Studio Gradle - 无法解析超过 2.24 的任何版本的匕首
- azure-active-directory - Azure AD 域服务域控制器的复制测试失败