지난번에 이어서 저장 버튼을 활성화시켜 보았다.
const saveBtn = document.getElementById("jsSave");
function handleCM(event) {
event.preventDefault();
/* 마우스 우클릭 방지 함수 */
}
function handleSaveClick() {
const image = canvas.toDataURL();
const link = document.createElement("a");
link.href = image;
link.download = "PaintJS[🎨]";
link.click();
}
if(canvas) {
canvas.addEventListener("mousemove", onMouseMove);
canvas.addEventListener("mousedown", startPainting);
canvas.addEventListener("mouseup", stopPainting);
canvas.addEventListener("mouseleave", stopPainting);
canvas.addEventListener("click", handleCanvasClick);
canvas.addEventListener("contextmenu", handleCM);
}
if(saveBtn) {
saveBtn.addEventListener("click", handleSaveClick);
}
먼저 우클릭 방지 함수를 생성한다. contextmenu, preventDefault 활용
save함수에는 toDataURL을 사용하는데,
toDataURL() 함수를는 캔버스에 그린 그림을 문자열 형태로 변환한다.
(괄호안을 공백으로 하면 PNG로 저장된다.)
그 다음 저장링크를 생성해주면 된다.
추가적으로 cusor pointer을 변경했으나 완벽하지 않은 상태.
'JavaScript > JS_Project' 카테고리의 다른 글
[Video app] Node JS란? (0) | 2021.10.11 |
---|---|
[momentum app] stopwatch 만들기 (0) | 2021.10.08 |
[momentum app] 지우개 기능 추가 (0) | 2021.10.06 |
[momentum app] 페인트 굵기 조절, 채우기 (0) | 2021.10.06 |
[momentum app] 컬러 변경 (0) | 2021.10.02 |