fabric.js:使用 Image.set() 调整图像大小是否会降低图像质量

fabric.js: Does resizing image using Image.set() reduce image quality?

本文关键字:是否 图像质量 图像 调整 使用 js Image set fabric      更新时间:2023-09-26

我需要在添加到画布之前减小图像的高度/宽度。我们正在使用织物.js。

使用如下所示的 image.set() 函数调整图像大小时,是否会降低图像质量?

imgAdd.onload = function () {
var img = new fabric.Image(imgAdd);
var imgSizeObj = img.getOriginalSize();
var newImgSize = calculateAspectRatioFit(imgSizeObj.width, imgSizeObj.height, canvas.width, canvas.height);
if (imgSizeObj.width > canvas.width || imgSizeObj.height > canvas.height) {
    //Does img.set() preserve image resolution?
    img.set({
        width: newImgSize.width,
        height: newImgSize.height
    });
}
canvas.add(img);
}

目标是保持图像质量,但自动缩放大图像以适应画布。

谢谢

不,

它没有。图像存储在object._element的属性中,除非对其应用某些筛选器,否则不会更改。即使在这种情况下,副本也存储在 object._originalElement .

请尝试以下操作:

var scale = bef;
img.set({
    scaleX: scale,
    scaleY: scale
});

您可以在此处找到更多信息:https://github.com/kangax/fabric.js/issues/176