웹 프론트엔드 JS 튜토리얼 fabricjs 란 무엇입니까? Fabricjs 프런트엔드 도면 라이브러리 사용 배열(코드 포함)

fabricjs 란 무엇입니까? Fabricjs 프런트엔드 도면 라이브러리 사용 배열(코드 포함)

Aug 17, 2018 am 11:44 AM
canvas javascript 프런트 엔드

이 기사에서는 fabricjs가 무엇인지 소개합니다. fabricjs 프론트엔드 드로잉 라이브러리(코드 포함)의 사용법은 특정 참조 값을 가지고 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

저는 한동안 사용해 왔습니다. 일반적으로 매우 강력한 벡터 그리기 도구입니다. 공식 문서도 상당히 풍부하지만 문서 구성이 그다지 좋지 않고 일부 API 디자인이 일관성이 없으며 여전히 필요합니다. 정리할 것.

Canvas

캔버스는 태그에 대해 캡슐화되어 있으며 내부적으로 그려진 모든 개체를 관리할 수 있습니다.
이 캔버스 개체는 DOM의 요소가 아닙니다. DOM이나 해당 컨텍스트를 제어해야 하는 경우에도 직접 가져와야 합니다.

canvasElement = document.getElementById(canvasEle);
ctx = canvasElement.getContext("2d");
로그인 후 복사

새 캔버스 개체를 생성할 때 너비와 높이를 지정할 수 있습니다.

canvas = new fabric.Canvas(canvasElement, { 
            selection: false,
            width: 800,
            height:600
});
로그인 후 복사

여기에 지정된 너비와 높이는 CSS에 설정된 너비와 높이보다 우선 적용됩니다. 참고로 이러한 객체 생성 형태는 Fabric.js에서도 기본적으로 유사합니다. 클래스 이름은 생성할 객체의 유형을 나타냅니다. 첫 번째 매개변수는 필수 데이터이고 두 번째 매개변수는 다양한 옵션입니다.

객체 추가 및 삭제, 객체 매개변수 수정을 포함하여 캔버스에 대한 모든 수정은 표시할 렌더링 방법을 호출해야 합니다.

canvas.renderAll();
로그인 후 복사

기본 모양

선, 원, 원, 직사각형 기하학적 도형은 모두 기본 모양.

모든 기본 모양에는 해당 클래스가 있으므로 위치, 색상, 크기 및 기타 스타일을 클래스 인스턴스의 속성과 메서드를 통해 제어할 수 있습니다. 모든 클래스는 Object 클래스에서 상속되며 일부 공용 속성과 메서드를 갖습니다.

만들기

다음은 선을 그리는 예입니다(두 개의 꼭지점 좌표가 주어짐).

        var line =  new fabric.Line([x1, y1, x2, y2], {
            strokeWidth: 2, //线宽
            stroke: rgba(255,0,0,0.8), //线的颜色
            selectable: false
        });
        canvas.add(line);
로그인 후 복사

원을 그리는 예(꼭지점과 반지름은 옵션에 있음). 여기서 왼쪽과 위쪽은 실제로 ( x, y ), CSS의 이름을 빌려야 합니다.

        var circle =  new fabric.Circle({
            radius: 2,
            left: left,
            top: top,
            originX: 'center',
            originY: 'center',
            fill: rgba(0,200,0,0.8), 
            strokeWidth: 1,
            stroke: rgba(255,0,0,0.8),
            selectable: false
        };
        canvas.add(circle);
로그인 후 복사

여기서 보면 첫 번째 매개변수는 이 클래스에만 해당되며(직선을 그릴 때 전달되는 시작점과 끝점 좌표 등), 두 번째 매개변수는 일반 옵션입니다. 특별한 매개변수가 없으면 첫 번째 매개변수는 바로 일반 옵션입니다. 생성된 모든 도형은 캔버스의 add 메소드를 통해 장면에 추가된 경우에만 표시될 수 있습니다.

Control

left 및 top은 그래프의 어느 지점이 좌표를 참조하는지에 대한 속성으로, OriginX 및 OriginY 매개변수에 의해 결정됩니다. 이는 텍스트 편집 소프트웨어의 정렬과 동일합니다. . , OriginX에는 왼쪽, 가운데, 오른쪽의 세 가지 선택적 값이 있으며, OriginY에는 위쪽, 가운데, 아래쪽의 세 가지 선택적 값이 있습니다.

그들의 회로도는 다음과 같습니다:
fabricjs 란 무엇입니까? Fabricjs 프런트엔드 도면 라이브러리 사용 배열(코드 포함)
http://fabricjs.com/test/misc...

각 개체의 기본 원점이 중앙에 오도록 하려면 다음과 같이 설정할 수 있습니다.

fabric.Object.prototype.originX = fabric.Object.prototype.originY = 'center'
로그인 후 복사

너비와 높이도 사용할 수 있습니다. 이름에서 알 수 있듯이 직접 액세스 속성은 길이와 너비를 나타냅니다(모든 도형에는 경계 직사각형이 있으므로 길이와 너비를 사용하여 크기를 제어할 수 있습니다).

직접 액세스할 수 있는 위 속성을 제외하고 대부분의 속성은 다음과 같이 get/set 메서드를 사용하여 읽고 써야 합니다.

line.left = pointer.x;
line.top = pointer.y;
line.set('stroke', startColor);
line.set('height', 20);
로그인 후 복사

인터넷의 일부 기사에서는 line.Stroke=color 또는 line이라고 씁니다. setProperty('스트로크' ,color) 는 유효하지 않으며 이전 버전의 표현일 수 있습니다.

Image

Image는 다른 모양과 유사하며 Object의 하위 클래스입니다. 가장 큰 차이점은 이미지 파일 로드가 비동기식이므로 Image에 대한 후속 작업은 콜백에서 완료되어야 한다는 것입니다.

var bkImage = fabric.Image.fromURL(imgUrl,function(img) {
    canvas.add(img);
}
로그인 후 복사

관련 추천:

plotly.js 플로팅 라이브러리 사용 방법

VML 드로잉 패드 ④ 단순화된 서버 측--server.php, server.asp

위 내용은 fabricjs 란 무엇입니까? Fabricjs 프런트엔드 도면 라이브러리 사용 배열(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP와 Vue: 프런트엔드 개발 도구의 완벽한 조합 PHP와 Vue: 프런트엔드 개발 도구의 완벽한 조합 Mar 16, 2024 pm 12:09 PM

PHP와 Vue: 프론트엔드 개발 도구의 완벽한 조합 오늘날 인터넷이 빠르게 발전하는 시대에 프론트엔드 개발은 점점 더 중요해지고 있습니다. 사용자가 웹 사이트 및 애플리케이션 경험에 대한 요구 사항이 점점 더 높아짐에 따라 프런트 엔드 개발자는 보다 효율적이고 유연한 도구를 사용하여 반응형 및 대화형 인터페이스를 만들어야 합니다. 프론트엔드 개발 분야의 두 가지 중요한 기술인 PHP와 Vue.js는 함께 사용하면 완벽한 도구라고 볼 수 있습니다. 이 기사에서는 독자가 이 두 가지를 더 잘 이해하고 적용할 수 있도록 PHP와 Vue의 조합과 자세한 코드 예제를 살펴보겠습니다.

프론트엔드 면접관이 자주 묻는 질문 프론트엔드 면접관이 자주 묻는 질문 Mar 19, 2024 pm 02:24 PM

프론트엔드 개발 인터뷰에서 일반적인 질문은 HTML/CSS 기초, JavaScript 기초, 프레임워크 및 라이브러리, 프로젝트 경험, 알고리즘 및 데이터 구조, 성능 최적화, 크로스 도메인 요청, 프론트엔드 엔지니어링, 디자인 패턴, 새로운 기술 및 트렌드. 면접관 질문은 후보자의 기술적 능력, 프로젝트 경험, 업계 동향에 대한 이해를 평가하기 위해 고안되었습니다. 따라서 지원자는 자신의 능력과 전문성을 입증할 수 있도록 해당 분야에 대한 충분한 준비를 갖추어야 합니다.

Django는 프론트엔드인가요, 백엔드인가요? 확인 해봐! Django는 프론트엔드인가요, 백엔드인가요? 확인 해봐! Jan 19, 2024 am 08:37 AM

Django는 빠른 개발과 깔끔한 ​​방법을 강조하는 Python으로 작성된 웹 애플리케이션 프레임워크입니다. Django는 웹 프레임워크이지만 Django가 프런트엔드인지 백엔드인지에 대한 질문에 답하려면 프런트엔드와 백엔드의 개념에 대한 깊은 이해가 필요합니다. 프론트엔드는 사용자가 직접 상호작용하는 인터페이스를 의미하고, 백엔드는 HTTP 프로토콜을 통해 데이터와 상호작용하는 서버측 프로그램을 의미합니다. 프론트엔드와 백엔드가 분리되면 프론트엔드와 백엔드 프로그램을 독립적으로 개발하여 각각 비즈니스 로직과 인터랙티브 효과, 데이터 교환을 구현할 수 있습니다.

Go 언어 프런트엔드 기술 탐색: 프런트엔드 개발을 위한 새로운 비전 Go 언어 프런트엔드 기술 탐색: 프런트엔드 개발을 위한 새로운 비전 Mar 28, 2024 pm 01:06 PM

빠르고 효율적인 프로그래밍 언어인 Go 언어는 백엔드 개발 분야에서 널리 사용됩니다. 그러나 Go 언어를 프런트엔드 개발과 연관시키는 사람은 거의 없습니다. 실제로 프런트엔드 개발에 Go 언어를 사용하면 효율성이 향상될 뿐만 아니라 개발자에게 새로운 지평을 열어줄 수도 있습니다. 이 기사에서는 프런트엔드 개발에 Go 언어를 사용할 수 있는 가능성을 살펴보고 독자가 이 영역을 더 잘 이해할 수 있도록 구체적인 코드 예제를 제공합니다. 전통적인 프런트엔드 개발에서는 사용자 인터페이스를 구축하기 위해 JavaScript, HTML, CSS를 사용하는 경우가 많습니다.

캔버스 프레임워크를 배우고 일반적으로 사용되는 캔버스 프레임워크에 대해 자세히 설명합니다. 캔버스 프레임워크를 배우고 일반적으로 사용되는 캔버스 프레임워크에 대해 자세히 설명합니다. Jan 17, 2024 am 11:03 AM

Canvas 프레임워크 탐색: 일반적으로 사용되는 Canvas 프레임워크가 무엇인지 이해하려면 특정 코드 예제가 필요합니다. 소개: Canvas는 풍부한 그래픽 및 애니메이션 효과를 얻을 수 있는 HTML5에서 제공되는 그리기 API입니다. 그리기의 효율성과 편의성을 향상시키기 위해 많은 개발자들이 다양한 Canvas 프레임워크를 개발했습니다. 이 기사에서는 일반적으로 사용되는 몇 가지 캔버스 프레임워크를 소개하고 독자가 이러한 프레임워크를 사용하는 방법을 더 깊이 이해하는 데 도움이 되는 특정 코드 예제를 제공합니다. 1. EaselJS 프레임워크 Ea

Django: 프론트엔드와 백엔드 개발을 모두 처리할 수 있는 마법의 프레임워크! Django: 프론트엔드와 백엔드 개발을 모두 처리할 수 있는 마법의 프레임워크! Jan 19, 2024 am 08:52 AM

Django: 프론트엔드와 백엔드 개발을 모두 처리할 수 있는 마법의 프레임워크! Django는 효율적이고 확장 가능한 웹 애플리케이션 프레임워크입니다. MVC, MTV를 포함한 다양한 웹 개발 모델을 지원할 수 있으며 고품질 웹 애플리케이션을 쉽게 개발할 수 있습니다. Django는 백엔드 개발을 지원할 뿐만 아니라 프런트엔드 인터페이스를 빠르게 구축하고 템플릿 언어를 통해 유연한 뷰 표시를 구현할 수 있습니다. Django는 프론트엔드 개발과 백엔드 개발을 완벽한 통합으로 결합하므로 개발자가 전문적으로 학습할 필요가 없습니다.

Golang과 프런트엔드 기술의 결합: Golang이 프런트엔드 분야에서 어떤 역할을 하는지 살펴보세요. Golang과 프런트엔드 기술의 결합: Golang이 프런트엔드 분야에서 어떤 역할을 하는지 살펴보세요. Mar 19, 2024 pm 06:15 PM

Golang과 프런트엔드 기술의 결합: Golang이 프런트엔드 분야에서 어떤 역할을 하는지 살펴보려면 구체적인 코드 예제가 필요합니다. 인터넷과 모바일 애플리케이션의 급속한 발전으로 인해 프런트엔드 기술이 점점 더 중요해지고 있습니다. 이 분야에서는 강력한 백엔드 프로그래밍 언어인 Golang도 중요한 역할을 할 수 있습니다. 이 기사에서는 Golang이 프런트엔드 기술과 어떻게 결합되는지 살펴보고 특정 코드 예제를 통해 프런트엔드 분야에서의 잠재력을 보여줍니다. 프론트엔드 분야에서 Golang의 역할은 효율적이고 간결하며 배우기 쉬운 것입니다.

게임 개발에서 캔버스의 강력한 역할과 적용을 살펴보세요. 게임 개발에서 캔버스의 강력한 역할과 적용을 살펴보세요. Jan 17, 2024 am 11:00 AM

게임 개발에서 캔버스의 힘과 적용 이해 개요: 인터넷 기술의 급속한 발전으로 인해 웹 게임은 플레이어들 사이에서 점점 더 인기를 얻고 있습니다. 캔버스 기술은 웹 게임 개발의 중요한 부분으로 게임 개발에 점차 등장하며 강력한 위력과 활용성을 보여주고 있습니다. 이 기사에서는 게임 개발에서 캔버스의 잠재력을 소개하고 특정 코드 예제를 통해 캔버스의 적용을 보여줍니다. 1. 캔버스 기술 소개 캔버스는 HTML5의 새로운 요소입니다.

See all articles