0
イメージをロードした後、canvas.centerObject(img)を呼び出した後、ファブリック上にイメージがあります。私は同じ画像を2倍に拡大していますが、Magnify Glassの機能を有効にしようとしていますが、画像を中心にせずにすべて正常に動作しますが、canvas.centerObject(img)を呼び出すと大きな画像がrigth位置に表示されません。ファブリックjsキャンバスを使用して中央オブジェクトの後に位置が正しくない
fabric.Image.fromURL('http://fabricjs.com/assets/pug_small.jpg', function (img) {
img1 = img;
img.set({
width: originalWidth,
height: originalHeight,
evented: true,
selectable: false
});
lens = fabric.util.object.clone(img);
lens.set({
width: scale * originalWidth,
height: scale * originalHeight,
clipTo: function (ctx) {
ctx.arc(-this.left + x - this.width/2, -this.top + y - this.height/2, radius, 0, Math.PI * 2, true);
}
});
canvas.add(img, lens);
canvas.centerObject(img);//*******issue here****
});
canvas.on('mouse:move', function (e) {
x = e.e.layerX;
y = e.e.layerY;
lens.set('left', -(scale - 1) * x);
lens.set('top', -(scale - 1) * y);
canvas.renderAll();
});
感謝。
私は理解していれば、溶液がこのコード行に基づいています。lens.set( '左'、 - (スケール - 1)* x + 300)である。したがって、基本的には、大きな画像の左に300を追加して、小さな画像からcenterObjectを取得する必要があります。どのように私は動的にその値を計算することができます(300)それは画像の任意のサイズのために働くように? – Arnel
イメージの幅の半分ですが、イメージサイズの1/4はレンズの左のプロパティに使用する必要があります...しかし、キャンバスのサイズによっても異なります。 –
@Arnelこれはあなたの質問に答えましたか?答えとしてマーキングしてもよろしいですか?あなたが実装しているときに他の質問があれば教えてください。さらに喜んで助けてください。 –