heicํ์ผ์ jpeg๋ก ๋ณํํ๋ ๊ณผ์ ์์ ์๊ฒ๋ ์๋ก์ด ์ฉ์ด๋ค์ด ์์ด์ ์ ๋ฆฌํด๋ณด์๋ค.
Blob
(Binary Large Object)Blob
์ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ์ ๋ฉ์ด๋ฆฌ์ด๋ค.FileReader
, fetch().blob()
, URL.createObjectURL()
๋ฑ์ ์ฌ์ฉํด์ผ ํ๋ค.const blob = new Blob(["Hello, world!"], { type: "text/plain" });
File
File
์ Blob
์ ์์ํ ๊ฐ์ฒด์ด๋ค.Blob
์ ๋ฐ์ดํฐ ์ธ์๋ ํ์ผ๋ช
, MIME ํ์
, ์ต์ข
์์ ์ผ ๊ฐ์ ๋ฉํ์ ๋ณด๋ฅผ ํฌํจํ๋ค.const file = new File(["Hello, world!"], "hello.txt", { type: "text/plain" });
ArrayBuffer
ArrayBuffer
๋ ๊ณ ์ ๊ธธ์ด์ ์์ ๋ฐ์ด๋๋ฆฌ ๋ฒํผ์ด๋ค.TypedArray
(Uint8Array
, Float32Array
๋ฑ)์ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋ค.const buffer = new ArrayBuffer(8); // 8๋ฐ์ดํธ์ง๋ฆฌ ๋ฒํผ
const view = new Uint8Array(buffer);
view[0] = 255;
๊ด๊ณ | ์ค๋ช |
---|---|
File โ Blob | File ์ Blob ์ ์์ํด์ ๋ง๋ค์ด์ง๋ค. |
Blob โ ArrayBuffer | Blob์ ๋ฐ์ดํฐ๋ฅผ ArrayBuffer๋ก ์ฝ๊ฑฐ๋, ArrayBuffer๋ฅผ Blob์ผ๋ก ๋ง๋ค ์ ์๋ค. |
Blob
โ ArrayBuffer
const blob = new Blob(["Hello"]);
blob.arrayBuffer().then(buffer => {
console.log(new Uint8Array(buffer)); // [72, 101, 108, 108, 111]
});
ArrayBuffer
โ Blob
const buffer = new ArrayBuffer(5);
const view = new Uint8Array(buffer);
view.set([72, 101, 108, 108, 111]); // "Hello"
const blob = new Blob([buffer], { type: "text/plain" });
๊ฐ์ฒด | ํต์ฌ ์ญํ | ์ฃผ์ ์ฉ๋ |
---|---|---|
Blob | ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ๋ฌถ์ | ์ด๋ฏธ์ง, ํ ์คํธ, ํ์ผ ์์ฑ ๋ฑ |
File | ์ด๋ฆ๊ณผ ๋ฉํ์ ๋ณด๊ฐ ์๋ Blob | ์ฌ์ฉ์ ์ ๋ก๋ ํ์ผ |
ArrayBuffer | ๋ฎ์ ์์ค์ ์ด์ง ๋ฐ์ดํฐ ๋ฒํผ | ์ ๋ฐํ ๋ฐ์ด๋๋ฆฌ ์ฒ๋ฆฌ, Web APIs |
์ด 3๊ฐ์ง ๊ฐ๋ ์ ์กฐ๊ธ๋ ์์ฉํ๊ณ ์ถ๋ค๋ฉด ์์์ ์ฐธ์กฐ ํ ๊ฒ