강의/노마드 코더 강의

노마드 코더 - 바닐라 JS로 그림 앱 만들기- 이미지 파일버튼 추가

홍시_코딩기록 2023. 5. 26. 20:32

파일 선택 버튼이 추가 되었음.

//html

<input type="file" accept="image/*" id="file"/>

accept ="image/*" 파일은 이미지파일로 이미지 파일형식은 모든 파일

<div class="wrap">        
    <canvas></canvas>
    <div class="color_box">
        <input type="range" id="line_width" min="1" max="10" value="5" step="0.5">
        <input type="color" id="color">
        <div class="color_pick">
            <div class="color_option" style="background-color:#eb4d4b;" data-color="#eb4d4b"></div>
            <div class="color_option" style="background-color:#ff7979;" data-color="#ff7979"></div>
            <div class="color_option" style="background-color:#f0932b;" data-color="#f0932b"></div>
            <div class="color_option" style="background-color:#95afc0;" data-color="#95afc0"></div>
            <div class="color_option" style="background-color:#f9ca24;" data-color="#f9ca24"></div>
            <div class="color_option" style="background-color:#badc58;" data-color="#badc58"></div>
            <div class="color_option" style="background-color:#ffbe76;" data-color="#ffbe76"></div>
            <div class="color_option" style="background-color:#7ed6df;" data-color="#7ed6df"></div>
            <div class="color_option" style="background-color:#686de0;" data-color="#686de0"></div>
        </div>
        <button id="mode_btn">Fill</button>
        <button id="destroy_btn">Destroy</button>
        <button id="eraser_btn">Erase</button>
        <input type="file" accept="image/*" id="file"/>
    </div>
</div>

//js

const fileInput = document.getElementById("file");
//file
function onFileChange(e) {
    const file = e.target.files[0];
    const url = URL.createObjectURL(file); //url 가져오기
    const image = new Image();
    image.src = url;//<img src=""/> html 코드와 동일
    image.onload = function() {
        ctx.drawImage(image, 0, 0, canvasWidth, canvasHeight) //(이미지, x좌표, y좌표, 넓이, 높이)
        fileInput.value = null; //file input 비우기
    }
}