이미지 Base64 변환
이미지를 Base64 Data URI로 변환합니다. 파일은 서버로 전송되지 않습니다.
이미지를 드래그하거나 클릭하여 선택
PNG, JPG, GIF, SVG, WebP 지원
-
파일명
-
형식
-
원본 크기
-
Base64 크기
어떤 작업에 맞는 도구인가
작은 아이콘이나 이메일 템플릿 이미지를 별도 파일 없이 HTML/CSS에 포함해야 할 때 이미지를 Data URI로 변환합니다. 변환 후 결과 길이와 MIME 타입을 확인해 너무 큰 이미지는 일반 파일 경로로 유지하는 식으로 판단할 수 있습니다.
이미지 Base64란?
이미지 Base64 변환은 PNG, JPG, GIF, WebP 등의 이미지 파일을 ASCII 텍스트 문자열로 인코딩하는 기술입니다. 변환된 문자열은 data:image/png;base64,iVBORw0KGgo... 형태의 Data URI가 되어, 별도 파일 없이 HTML <img> 태그나 CSS background-image 속성에 직접 삽입할 수 있습니다.
Base64 인코딩은 이미지 데이터를 텍스트로 전달해야 하는 상황에서 사용됩니다. 이메일 HTML 템플릿, 단일 파일 HTML 문서, API JSON 응답에 이미지를 포함할 때 특히 유용합니다. 단, Base64로 인코딩하면 원본 대비 약 33%의 파일 크기 증가가 발생하므로, 크기가 작은 아이콘이나 로고에 적합하고 큰 사진 파일에는 권장하지 않습니다.
사용 방법
- 이미지 선택 — "파일 선택" 버튼을 클릭하거나 이미지 파일을 드래그 앤 드롭하여 업로드합니다. PNG, JPG, GIF, SVG, WebP 등 주요 형식을 지원합니다.
- 변환 확인 — 파일 선택 즉시 Data URI 형태의 Base64 문자열이 생성됩니다. 미리보기로 올바르게 변환되었는지 확인합니다.
- 결과 복사 — 전체 Data URI 문자열을 복사하여 HTML이나 CSS에 바로 붙여넣습니다.
- CSS background 코드 — CSS
background-image속성에 사용할 수 있는 코드가 자동으로 생성됩니다. 복사하여 CSS 파일에 바로 적용하세요. - HTML img 태그 —
<img src="...">형태의 코드도 자동 생성됩니다. HTML에 인라인으로 이미지를 삽입할 때 사용하세요.
이미지 Base64 변환이 필요한 경우
이미지 Base64 변환은 파일을 텍스트 문자열로 바꿔 HTML, CSS, JSON 같은 텍스트 기반 환경에서 다루기 쉽게 만듭니다. 특히 아이콘처럼 작은 리소스를 빠르게 테스트하거나 API 페이로드에 포함해야 할 때 유용합니다.
실무 사용 예시
- CSS `background-image`에 작은 아이콘을 인라인으로 넣어 요청 수를 줄입니다.
- 데이터 전송 테스트 시 이미지 파일 대신 Base64 문자열을 JSON에 포함합니다.
- 외부 파일 접근이 제한된 환경에서 임시 미리보기 이미지를 출력합니다.
주의사항
- Base64 인코딩 시 파일 크기가 일반적으로 약 33% 증가합니다.
- 큰 이미지를 인라인하면 HTML/CSS 크기가 커져 초기 렌더링이 느려질 수 있습니다.
- 반복 재사용되는 리소스는 별도 파일로 분리하는 편이 캐시 효율에 유리합니다.
인라인할까, 파일로 둘까 — 판단 기준
| 조건 | Data URI 인라인 | 별도 이미지 파일 |
|---|---|---|
| 파일 크기 | 수 KB 이하 아이콘·로고 | 수십 KB 이상 사진·배너 |
| 재사용 빈도 | 한 페이지에서만 사용 | 여러 페이지에서 반복 사용 (브라우저 캐시 활용) |
| 환경 제약 | 이메일 템플릿, 단일 HTML 배포, 외부 요청 차단 환경 | 일반 웹사이트 |
| 수정 주기 | 거의 바뀌지 않는 리소스 | 자주 교체되는 리소스 (파일만 교체하면 끝) |
과거에는 HTTP 요청 수 자체를 줄이는 것이 중요해 스프라이트나 인라인이 널리 쓰였지만, HTTP/2 이후 하나의 연결로 여러 리소스를 병렬 전송할 수 있게 되면서 "요청 수 절감" 목적의 인라인은 이점이 줄었습니다. 현재 인라인의 실질 가치는 파일을 첨부할 수 없는 환경(이메일 HTML, JSON 페이로드, 오프라인 단일 파일 문서)에 있습니다.
크기 증가 계산 예시
Base64는 3바이트를 4문자로 표현하므로 크기가 정확히 4/3배(+패딩)가 됩니다. 실제 감이 오도록 예를 들면, 2KB 파비콘은 약 2.7KB, 15KB PNG 로고는 약 20KB, 200KB 제품 사진은 약 267KB의 문자열이 됩니다. 이 문자열이 HTML에 들어가면 gzip 압축 후에도 원본 바이너리 전송보다 커지는 경우가 대부분이고, CSS에 넣으면 해당 CSS 파일 전체의 파싱이 끝날 때까지 렌더링을 지연시킵니다. 인코딩 원리 자체가 궁금하다면 Base64 인코딩 가이드를 참고하세요.
자주 묻는 질문
업로드한 이미지가 서버로 전송되나요?
아닙니다. 변환은 브라우저 내부에서만 수행되며 파일 데이터는 외부로 전송되지 않습니다.
Data URI와 Base64 문자열은 같은 건가요?
Data URI는 `data:image/png;base64,...`처럼 MIME 정보와 Base64 데이터를 함께 담는 전체 형식입니다.
어떤 이미지 포맷을 지원하나요?
브라우저가 읽을 수 있는 일반 이미지 포맷(PNG, JPG, GIF, WebP, SVG)을 지원합니다.