-
23_10_10 JS공부정리개발공부/JavaScript 2023. 10. 11. 01:31
https://nomadcoders.co/javascript-for-beginners-2/lectures/3749
All Courses – 노마드 코더 Nomad Coders
초급부터 고급까지! 니꼬쌤과 함께 풀스택으로 성장하세요!
nomadcoders.co
[노마드코더] 3.0강~
<input type="file" accept="image/*" id="file"/>-accept속성을 통해 이미지파일들만 받을 수 있음.
function onFileChange(event){const file = event.target.files[0];const url = URL.createObjectURL(file);}-event.target.file[0]을 통해 업로드된 파일의 정보를 알 수 있음.
console.dir(event.target) -업로드된 파일정보를 바탕으로 URL.createObjectURL() 통해 받은 파일에 대해 url을 생성할 수 있음.
console.log(url) -이를 주소창에 복사하면 해당 파일을 얻을 수 있음.
-이미지를 캔버스에 넣는 코드
function onFileChange(event){const file = event.target.files[0];const url = URL.createObjectURL(file);const image = new Image(); //새 이미지 생성, html의 img태그를 만드는것과 같음image.src = url; //src에 url을 넣어서 이미지를 만듬.image.onload = function () {ctx.drawImage(image, 0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); // .drawInage(url,x좌표,y좌표,너비,높이)} //}fileInput.addEventListener("change",onFileChange);-더블클릭하는 이벤트는 dblclick이다.
canvas.addEventListener("dblclick", onDoubleClick);-선 모양을 둥글게 하는 코드 : .lineCap = "butt" or "round" or "square"
ctx.lineCap = "round";-캔버스에 텍스트를 넣는 코드
function onDoubleClick(event) {const text = textInput.value; //input에 있는 value값을 가져옴if (text !== "") { //비어있으면 안가져옴ctx.save(); //선 설정을 미리 저장해놓음ctx.lineWidth = 1;ctx.font = "48px serif" // ctx.font(사이즈, 폰트패밀리)ctx.fillText(text, event.offsetX, event.offsetY); // ctx.fillText(텍스트,x좌표, y좌표)ctx.restore(); //이전 선 설정을 불러옴}}
canvas.addEventListener("dblclick", onDoubleClick);-캔버스를 저장하는 코드
function onSaveClick(event){const url = canvas.toDataURL(); //캔버스에 그려진 그림을 url로 변환해주는 코드const a = document.createElement('a'); //가짜 a태그를 만듬a.href = url; // a태그에 href를 할당a.download = "myDrawing.png"//a태그의 download속성을 이용해서 a태그를 누르면 다운로드되게 설정. 다운로드할 이미지 이름도 설정 가능.a.click(); //a태그를 클릭하는 함수. 클릭해서 다운로드되게 만듬.}saveBtn.addEventListener("click", onSaveClick);'개발공부 > JavaScript' 카테고리의 다른 글
23_10_26 JS공부정리 (0) 2023.10.27 23_10_24 JS공부정리 (1) 2023.10.25 23_10_08 JS공부정리 (0) 2023.10.09 23_10_07 JS공부정리 (1) 2023.10.08 23_10_06 JS공부정리 (1) 2023.10.07