html에 img의 src에 url이 아닌 숫자와 문자로 구성된 긴 코드가 들어간 경우가 있었는데 data:image/png;base64
와 같은 형태였다.
검색 후 아래와 경우에는 이미지를 base64인코딩 방식으로 사용한다는것을 알았다.
그렇다면, base 64는 무엇일까?🥸
Base 64 는 데이터를 64진법 으로 나타내는 것으로,
0부터 63까지 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 으로 나타낸다.
A-Z,a-z,0–9,/+ 만을 사용하기 때문에,
문자 포맷이 달라 데이터를 손상시킬 수있는 시스템 간에 안정적으로 전송 될 수 있다.
DataURL 은 작은 이미지 같은 파일을 문서 (Html, JS, CSS) 에 인라인으로 작성할 수 있는데, 작성된 이미지와 같은 정보는 이미 문서에 포함되어 있기때문에, 서버에 요청하지 않고도 이미지를, 사용할 수 있다.
https://www.base64-image.de/
위의 사이트에 이미지를 업로드 후 ,
결과를 복사해 아래처럼 붙여넣어 사용하면 된다.
기본 형태 data:[<mediatype>][;base64],<data>
HTML ➡︎ img태그 src <img src="data:image/<이미지확장자>;base64,<data코드>")
CSS ➡︎ background-image background-image: url('data:image/<이미지확장자>;base64,<data코드>')
JavaScript ➡︎ 예시
<script>
var img = new Image();
img.addEventListener('load', () => {
// 캔버스에 그리기
var ctx = document.querySelector('canvas').getContext('2d');
ctx.drawImage(img, 0, 0);
});
img.src ="data:image/<이미지확장자>;base64,<data코드>"
</script>
장점
단점
✓ Reference
https://medium.com/@pks2974/base-64-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC%ED%95%98%EA%B8%B0-da50fdfc49d2
https://hsmtree.wordpress.com/2016/05/05/data-uris%EB%A1%9C-image-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0/
https://devday.tistory.com/entry/Base64%EB%A1%9C-%EC%9D%B8%EC%BD%94%EB%94%A9-Encoding-%EC%8B%9C-%ED%81%AC%EA%B8%B0-Size-%EC%A6%9D%EA%B0%80
https://devfunpj.tistory.com/16