2013-03-07 6 views
0

저는 canvas.toDataURL()을 사용하고 base64 형식으로 이미지를 가져 왔습니다. 하지만 서버에 업로드하기 전에 이미지의 메모리 크기를 10KB로 줄일 수 있습니까? ? 당신이 문자열을 압축하려면Javascript를 사용하여 base64 이미지 메모리 크기 줄이기

var context = canvas.getContext("2d"); 
context.drawImage(imageObj, c.x, c.y, c.w, c.h, 0, 0, canvas.width, canvas.height); 
var vData = canvas.toDataURL(); 
+0

당신은 지금까지 시도한 것을 우리에게 보여줄 수 있습니까 –

+0

@harsha : 내 질문을 편집했습니다. – user

답변

3

당신이 here을 언급 한 압축 알고리즘 중 하나를 시도 할 수 있지만, DataURL 때문에, 이미 상당히 압축입니다 :이 자바 스크립트 또는 jQuery를 사용하여 할 수있는 방법은 코드를 내가 사용하고 있습니다 이것은 많은 차이를 만들어서는 안됩니다.

또 다른 옵션은 이미지 품질에 눈에 띄는 영향을주지 않고 안전하게 안전하게 줄일 수있는 JPG의 품질을 지정하는 toDataURL의 두 번째 매개 변수를 사용하는 것입니다.

요청한 형식이 image/jpeg 또는 image/webp 인 경우 0.0과 1.0 사이의 두 번째 인수는 이미지 품질을 나타내는 것으로 처리됩니다. 두 번째 인수가 다른 것이라면 이미지 품질의 기본값이 사용됩니다. 다른 인수는 무시됩니다.

+0

예 이미지의 "품질"요소에 대해 읽었으며 이미지 크기를 10KB로 줄입니까? – user

+0

@Ashwini : 품질과 이미지 크기간에 1 : 1 관계가 없습니다. 오히려 기하 급수적입니다 (품질이 그렇듯이). –

+0

@ Aaron Digulla : 품질 요소를 줄이면 이미지가 잘 보이지 않습니까? 그렇지 않으면 base64 이미지 크기를 줄이기위한 다른 방법은 없을까요? – user

관련 문제