fabric.js:使用 Image.set() 调整图像大小会降低图像质量吗?
fabric.js: Does resizing image using Image.set() reduce image quality?
我需要在添加到 Canvas 之前减少图像的 height/width。我们正在使用 fabric.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);
}
目标是保持图像质量,但会自动缩放大图像以适应 canvas。
谢谢,
不,不是。
图像存储在 object._element
的 属性 中,除非您对其应用一些过滤器,否则不会更改。
即使在那种情况下,副本也会存储在 object._originalElement
.
中
请尝试以下操作:
var scale = bef;
img.set({
scaleX: scale,
scaleY: scale
});
您可以在此处找到更多相关信息:https://github.com/kangax/fabric.js/issues/176
我需要在添加到 Canvas 之前减少图像的 height/width。我们正在使用 fabric.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);
}
目标是保持图像质量,但会自动缩放大图像以适应 canvas。
谢谢,
不,不是。
图像存储在 object._element
的 属性 中,除非您对其应用一些过滤器,否则不会更改。
即使在那种情况下,副本也会存储在 object._originalElement
.
请尝试以下操作:
var scale = bef;
img.set({
scaleX: scale,
scaleY: scale
});
您可以在此处找到更多相关信息:https://github.com/kangax/fabric.js/issues/176