저장되는 미디어 용량 줄이기, convert image/gif to webp (javascript)
webp 란
gif, png, jpeg 을 전부 지원하는 이미지파일 포멧이다.
기존보다 용량을 30% 가량 줄여준다고 한다.
파일을 인자로 받아 canvas 에 쓰고 데이터 타입과 사이즈를 바꾸는 함수를 작성했다.
출력: blob데이타
async function processFile(file) {
return new Promise(function(resolve,reject){
// Load the data into an image url
// then convert raw Image into webp format && resizing
let rawImage = new Image();
this.webpurl =null;
let canvas = document.createElement('canvas');
let ctx = canvas.getContext("2d");
rawImage.onload = function () {
if (rawImage.src){
var width = rawImage.width;
var height = rawImage.height;
if (width > height) {
if (width > MAX_WIDTH) {
height *= MAX_WIDTH / width;
width = MAX_WIDTH;
}
} else {
if (height > MAX_HEIGHT) {
width *= MAX_HEIGHT / height;
height = MAX_HEIGHT;
}
}
canvas.width = width;
canvas.height = height;
ctx.drawImage(rawImage, 0, 0, width, height);
canvas.toBlob(function(blob){
console.log("this webpurl",this.webpurl);
resolve(blob);
},"image/webp");
}
};
rawImage.src = URL.createObjectURL(file);
rawImage.crossOrigin = 'Anonymous';
})
}
적용 전& 후 비교
효과는 대단했다..
- 전
- 후
628KB --> 31 KB 로 줄었다.
헐..
Author And Source
이 문제에 관하여(저장되는 미디어 용량 줄이기, convert image/gif to webp (javascript)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@s0ye0nyang/저장되는-미디어-용량-줄이기-convert-imagegif-to-webp-javascript저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)