2017-01-05 13 views
0

JavaScript-Load-Image 기능 loadImage(...)을 사용합니다. 하지만 base64 문자열은 FileReader()을 통해로드하는 것보다 대략 2-4 배 더 길다.JavaScript-Load-Image 라이브러리를 사용하여 파일에서 이미지를로드하면 이미지 크기가 4 배 확대됩니다.

저는 이미 큰 파일을 다루고 있으므로 훨씬 더 클 수 없습니다.

var reader = new FileReader(); 
reader.onload = function() { 
    console.log('initial length:', this.result.length); 
}; 
reader.readAsDataURL(image_file); 

loadImage(
     file, 
     function (img) { 
      console.log('resized length:', img.toDataURL().length); 
     }, 
     { 
      orientation: true 
     } 
    ); 

어떤 결과 :

24,839 대 107,482

2,498,383 대 5,898,430

2,391,783 대 5,955,498

+0

예, base64 인코딩은 크기를 늘립니다. 질문이 뭐야? –

+0

그들은 모두 base64로 인코딩하고 두 가지 다른 크기의 결과를 나타냅니다. – benwiz

+0

... 그리고 당신의 질문은 왜 다른 크기입니까? 질문에는 일반적으로 물음표가 있습니다. 왜 그들이 서로 다른지에 관해서는 링크 된 페이지에서 라이브러리는 이미지에 대해 일종의 변형을 수행합니다. ''toDataUrl()'(https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL)도 호출하고 있는데, 이는 img이' canvas' 엘리먼트는 또한 약간의 오버 헤드를 추가 할 것이고, 기본 이미지 포맷은 "image/png"이며 원래의 포맷과 다를 수도 있습니다 ... –

답변

0

img.toDataURL()img.toDataURL('image/jpeg)이어야 png 대신 압축 된 jpg로 저장됩니다.