首页 > 解决方案 > 如何更改图像质量

问题描述

设置图像质量/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;
}

标签: javascriptangularjsimage-compressionimage-quality

解决方案


对于图像压缩,您可以使用Sharp


推荐阅读