[javascript] Fabric.js로 객체의 리사이즈 가능성 설정하기

Fabric.js는 HTML5 캔버스 상에서 동적으로 그래픽 객체를 생성하고 조작하는 데 사용되는 JavaScript 라이브러리입니다. 이 라이브러리를 사용하여 객체를 만들 때, 객체의 리사이즈 가능성을 설정하고 싶을 수 있습니다. 이 글에서는 Fabric.js를 사용하여 객체의 리사이즈 가능성을 설정하는 방법에 대해 알아보겠습니다.

1. 리사이즈 가능성 설정하기

Fabric.js에서 객체의 리사이즈 가능성을 설정하려면 resizable 속성을 사용합니다. 이 속성은 true로 설정되면 객체를 리사이즈할 수 있게 되고, false로 설정되면 리사이즈가 불가능하게 됩니다.

var canvas = new fabric.Canvas('canvas');

var rect = new fabric.Rect({
  left: 100,
  top: 100,
  width: 200,
  height: 200,
  fill: 'red',
  resizable: true // 리사이즈 가능성 설정
});

canvas.add(rect);

위의 예제에서 resizable 속성을 true로 설정하여 rect 객체를 리사이즈할 수 있게 설정했습니다.

2. 리사이즈 가능성 제한하기

Fabric.js에서 객체의 리사이즈 가능성을 제한하려면 minScaleLimitmaxScaleLimit 속성을 사용합니다. 이 속성은 객체의 최소 크기와 최대 크기를 지정하여 리사이즈 가능성을 제한합니다.

var rect = new fabric.Rect({
  left: 100,
  top: 100,
  width: 200,
  height: 200,
  fill: 'red',
  resizable: true,  // 리사이즈 가능성 설정
  minScaleLimit: 0.5, // 최소 크기 제한
  maxScaleLimit: 2 // 최대 크기 제한
});

위의 예제에서 minScaleLimit 속성을 0.5로 설정하여 rect 객체의 최소 크기를 0.5배로 제한했습니다. 또한 maxScaleLimit 속성을 2로 설정하여 최대 크기를 2배로 제한했습니다.

3. 리사이즈 이벤트 처리하기

리사이즈 가능한 객체를 만들었다면, 해당 객체의 크기가 변경될 때 이벤트를 처리할 수도 있습니다. 예를 들어, 객체의 크기가 변경될 때마다 로그를 출력하는 코드를 작성해보겠습니다.

var rect = new fabric.Rect({
  left: 100,
  top: 100,
  width: 200,
  height: 200,
  fill: 'red',
  resizable: true // 리사이즈 가능성 설정
});

rect.on('scaling', function(event) {
  console.log('Object is scaling');
});

canvas.add(rect);

위의 예제에서 rect 객체에 scaling 이벤트를 등록하고, 이벤트가 발생할 때마다 콘솔에 ‘Object is scaling’을 출력하도록 설정했습니다.

4. 결론

Fabric.js를 사용하여 객체의 리사이즈 가능성을 설정하는 방법을 알아보았습니다. resizable 속성을 사용하여 객체의 리사이즈 가능성을 설정하고, minScaleLimitmaxScaleLimit 속성을 사용하여 리사이즈 가능성을 제한할 수 있습니다. 또한 리사이즈 이벤트를 처리하여 객체의 크기 변화를 감지할 수도 있습니다.

더 자세한 내용은 Fabric.js 공식 문서를 참조하세요.