Html

 

<h3>로컬에 있는 이미지를 바로 브라우저에 표시</h3>

<img id="preview" src="" width="700" alt="로컬에 있는 이미지가 보여지는 영역">

<a id="download" download="thumbnail.jpg" target="_blank">

    <img id="thumbnail" src="" width="100" alt="썸네일영역 (클릭하면 다운로드 가능)">

</a>

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

 

 

 

 

Css

 

img {

    margin: 1em 0;

    display: block;

    background: rgb(240, 240, 240);

    border: 1px solid rgb(0,0,0);

}

 

Js

 

var file = document.querySelector('#getfile');

 

file.onchange = function () {

    var fileList = file.files ;

   

    // 읽기

    var reader = new FileReader();

    reader.readAsDataURL(fileList [0]);

 

    //로드 한 후

    reader.onload = function  () {

        //로컬 이미지를 보여주기

        document.querySelector('#preview').src = reader.result;

       

        //썸네일 이미지 생성

        var tempImage = new Image(); //drawImage 메서드에 넣기 위해 이미지 객체화

        tempImage.src = reader.result; //data-uri를 이미지 객체에 주입

        tempImage.onload = function() {

            //리사이즈를 위해 캔버스 객체 생성

            var canvas = document.createElement('canvas');

            var canvasContext = canvas.getContext("2d");

           

            //캔버스 크기 설정

            canvas.width = 100; //가로 100px

            canvas.height = 100; //세로 100px

           

            //이미지를 캔버스에 그리기

            canvasContext.drawImage(this, 0, 0, 100, 100);

            //캔버스에 그린 이미지를 다시 data-uri 형태로 변환

            var dataURI = canvas.toDataURL("image/jpeg");

           

            //썸네일 이미지 보여주기

            document.querySelector('#thumbnail').src = dataURI;

           

            //썸네일 이미지를 다운로드할 수 있도록 링크 설정

            document.querySelector('#download').href = dataURI;

        };

    };

};

 





'오락기 > js' 카테고리의 다른 글

Object.assign()  (0) 2018.10.12
날찌비교  (0) 2018.09.28
nodelist event  (0) 2018.09.28
Array map  (0) 2018.08.17
fetch 와 XMLHttpRequest방식  (0) 2018.08.17

+ Recent posts