2016-04-27 10 views
1

キャンバスに追加する前に画像の高さ/幅を小さくする必要があります。私たちはfabric.jsを使用しています。fabric.js:Image.set()を使用してイメージのサイズを変更するとイメージの品質が低下しますか?

以下に示す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); 
} 

目標は画質を維持することですが、キャンバス内に収まるように大きな画像を自動的に拡大/縮小します。

ありがとう、

答えて

1

いいえ、それはありません。 イメージはobject._elementのプロパティに格納され、一部のフィルタを適用しない限り変更されません。 その場合でも、コピーはに格納されます。

+0

は、あなたの答えをいただき、ありがとうございます。 – Gregg

0

次のことを試してください:

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

あなたがここにこれに関するより多くの情報を見つけることができます:https://github.com/kangax/fabric.js/issues/176

+0

ドキュメント:https://github.com/kangax/fabric.js/issues/176 – AndyG

関連する問題