Fabric.js의 핸드폰 입력 기능으로 캠퍼스 낙서
15560 단어 JavaScriptfabricjstech
개막사
God kveld. DE-TEU입니다.
이번에는 Fabric입니다.js 했어요.
성과물
갑작스럽지만 기본적으로 어느 학교에나 이런 창고가 있잖아요.
'선 그리기','흰 선 그리기'같은 거지.
나는 모든 사람들이 어렸을 때 이걸로 캠퍼스에 낙서를 할 것이라고 생각한다.
이번에 그 꿈을 이루는 웹 애플리케이션을 개발했다.
(스마트폰이든 컴퓨터든 모두 사용할 수 있다)
Ground The World
교정에 낙서를 하다
다 된 것 같아.
해설
다음은 설치된 해설 등.
Fabric.js 손으로 입력하기
Fabric.js는 HTML5의 canvas 요소 기능을 확장하는 프로그램 라이브러리입니다.
이번에는 그 중의 핸드폰 입력 기능을 사용할 것이다.
설치 방법(npm 사용 시)
npm install fabric
사용 시 먼저 HTML에 canvas 요소 추가<canvas id="canvas"></canvas>
JavaScript Fabric을 사용합니다.js를 불러오고 canvas에 적용import { fabric } from "fabric";
window.onload = () => {
const canvas = new fabric.Canvas("canvas", {
isDrawingMode: true // 手書き入力ON
});
setBrush(canvas);// ペンの色とか種類を指定(以下に解説)
setBackgroundImage(canvas);// 背景画像を設定(以下に解説)
};
이렇게 하면 캔버스에 손으로 입력할 수 있다.그런 다음 를 입력할 때 브러쉬의 색상과 종류를 지정합니다.
const setBrush = (canvas) => {
canvas.freeDrawingBrush = new fabric['SprayBrush'](canvas); // スプレーブラシを指定
if (canvas.freeDrawingBrush) {
const brush = canvas.freeDrawingBrush;
brush.color = 'white'; // ブラシの色指定(#FFFFFFやrgb(255,255,255)等の書き方でも可)
if (brush.getPatternSrc) {
brush.source = brush.getPatternSrc.call(brush);// 設定を反映
}
brush.width = 10;// 線の太さを指定
brush.shadow = new fabric.Shadow({ // 線に影をつける
blur: 3,
offsetX: 0,
offsetY: 0,
affectStroke: true,
color: 'white',
});
}
};
그리고 canvas에 배경을 설정합니다.지정한 그림을 불러오고 canvas 크기에 따라 확대 (축소) 합니다.
(이번에는 그림의 종횡비를 유지하지 않았다)
const setBackgroundImage = (canvas) => {
fabric.Image.fromURL('画像ファイルのパス', (img) => {
img.set({
opacity: 1,// 透明度
scaleX: canvas.width / img.width,// X軸の拡大率
scaleY: canvas.height / img.height,// Y軸の拡大率
});
canvas.setBackgroundImage(img,
canvas.requestRenderAll.bind(canvas) );// 画像を背景に設定
});
};
Canvas를 이미지로 저장
캔버스에 그린 그림은 "어렵게 그림으로 저장하려고 했다"는 생각이 들 것 같다.
우선 HTML에 다음 요소를 추가합니다
<button id="btn-save">保存</button>
<a id="link-download" class="hidden" download="ground.png" target="_blank">hide</a>
link-download 스타일로 숨기기.hidden {
display:none;
}
JavaScript에서 저장 버튼을 누를 때의 이벤트 설정document.getElementById("btn-save").addEventListener("click",()=>{
const link = document.getElementById('link-download');
const dataurl = canvas.toDataURL();// canvasのピクセルデータをDataURLに変換
link.href = dataurl;// DataURLをダウンロードリンクに設定
link.click();// ダウンロード実行
});
이렇게 하면 다운로드할 수 있습니다.※ iOS의 사파리에서 수행할 때 다운로드하지 않고 다른 창에 이미지를 표시하는 행위Chrome, Edge 및 Firefox에서 다운로드할 수 있습니다.주의하십시오.
총결산
Fabric은 웹에서 직접 입력하려는 조건이 있을 때 사용합니다.우리 js 채택이 어떤지 토론해 봅시다.
또한, Fabric.JS는 이번에 소개한 손글씨 입력 외에도 애니메이션 이미지, 필터 이미지, 드래그 앤 드롭 모바일, 줌 등 다양한 기능을 탑재하고 있어 관심 있는 사람이 조사할 수 있다.
참고 자료
Anglar와 Fabric.js로 그림을 그려요. - Qita.
Free drawing | Fabric.js Demos
Reference
이 문제에 관하여(Fabric.js의 핸드폰 입력 기능으로 캠퍼스 낙서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/de_teiu_tkg/articles/cb87c3890ccbd4ab6051텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)