파일 업로드
  1. base64hub
  2. 이미지 도구
  3. JPG → Base64

JPG를 Base64로

JPG나 JPEG를 놓으면 Base64나 data:image/jpeg URI를 받습니다. 휴대폰 사진은 크기가 크므로, 인코딩 전에 크기를 줄이고 GPS를 포함한 EXIF 데이터를 지울 수 있습니다.

무료 가입 없음, 제한 없음 로컬 업로드 없음 EXIF GPS와 카메라 데이터 제거 업데이트 2026. 10. 27.
이미지를 여기에 끌어다 놓거나, 붙여넣거나, 선택하세요
입력 –출력 –크기 –

브라우저에서 처리됩니다. 이 페이지는 데이터를 어디로도 보낼 수 없습니다 – 확인 방법

JPG를 Base64로 변환하는 방법

  1. .jpg나 .jpeg 파일을 놓거나, 파일 선택 창에서 고르거나, 복사한 이미지를 Ctrl+V로 붙여넣으세요.
  2. 카메라나 휴대폰에서 바로 가져온 사진이라면 최대 너비(예: 1200)를 설정하고 품질을 조정하세요. 기본값은 85%입니다.
  3. 사진을 공유하거나 게시할 예정이라면 메타데이터(EXIF) 제거를 선택하세요.
  4. 출력 형식을 고르세요. 기본값은 Data URI이고, 대부분의 API는 일반 Base64를 원합니다. 그런 다음 출력 복사를 누르세요.

미리보기에는 픽셀 크기와, 다시 인코딩한 뒤의 새 파일 크기가 표시되므로 몇 가지 설정을 시도하며 숫자가 줄어드는 것을 볼 수 있습니다.

JPG의 Base64 안에 든 것

모든 JPEG 파일은 SOI 마커 FF D8 FF로 시작하므로 Base64로는 모두 /9j/로 시작합니다. 그다음 문자는 어떤 헤더가 오는지 알려 줍니다.

파일 시작 부분Base64 시작 부분흔한 출처
FF D8 FF E0 + JFIF/9j/4AAQSkZJRg이미지 편집기, 웹용 내보내기, 대부분의 변환기
FF D8 FF E1 + Exif/9j/4 다음에 달라지는 문자카메라와 휴대폰 (EXIF 블록이 먼저)
FF D8 FF DB/9j/2w메타데이터를 지운 파일이나 최소 구성 인코더

카메라 JPEG에는 기기 모델, 촬영 시각, 방향, 그리고 위치 기능이 켜져 있었다면 GPS 좌표가 담긴 EXIF 블록이 들어 있습니다. Base64는 이 중 어느 것도 숨기지 않습니다. 누구든 Base64를 JPG로로 문자열을 디코딩하면 메타데이터가 그대로 든 원본 파일을 얻습니다.

인코딩 전에 사진 줄이기

요즘 휴대폰 사진은 몇 메가바이트입니다. Base64로 바꾸면 3분의 1이 더 늘어나서, JSON 요청, CSS 파일, HTML 이메일에는 너무 크고 그 밖의 곳에서도 느립니다.

두 가지 설정이 대부분의 일을 합니다.

  • 최대 너비는 최대 너비를 픽셀 단위로 정합니다. 너비를 절반으로 줄이면 픽셀 수는 4분의 1이 됩니다.
  • 품질은 JPEG 압축을 조절합니다. 사진을 다시 인코딩할 때, 즉 최대 너비, 변환 형식, 메타데이터(EXIF) 제거 중 하나가 설정되어 있을 때 적용됩니다. 75%에서 85% 사이는 사진에서 차이를 알아보기 어렵지만, 95–100%보다 파일이 훨씬 작아집니다.

JPEG를 다시 인코딩하면 디코딩 후 다시 압축하므로 항상 디테일이 조금씩 사라집니다. 원본에서 한 번만 하고, 결과를 변환기에 다시 넣지 마세요.

JPEG에는 투명도가 없습니다. 배경이 투명한 PNG나 WebP를 JPEG로 바꾸면 투명한 부분이 흰색이 됩니다. 알파 채널이 필요하면 PNG나 WebP를 유지하세요.

JPG Base64가 쓰이는 곳

  • JSON API를 통한 사진 업로드. 이미지를 설명하거나 분석하는 AI 비전 모델도 여기에 포함됩니다. 많은 서비스가 큰 이미지를 자기 쪽에서 줄이므로, 더 작은 JPEG를 보내면 눈에 띄는 손실 없이 요청이 빨라집니다.
  • HTML의 인라인 썸네일과 자리 표시자. 예를 들어 전체 이미지를 불러오는 동안 보여 주는 20픽셀 너비의 흐린 미리보기.
  • 단일 파일 문서. 예를 들어 사진 몇 장이 포함된 HTML 리포트.

웹사이트의 큰 사진은 여전히 일반 이미지 파일이 낫습니다. 캐시와 지연 로딩이 가능하고 srcset으로 여러 크기를 제공할 수 있기 때문입니다.

Python으로 크기 조절과 인코딩

Pillow는 몇 줄로 사진의 크기를 조절하고 다시 인코딩하며, Base64는 표준 라이브러리가 처리합니다. Pillow는 명시적으로 넘기지 않으면 EXIF를 새 파일에 복사하지 않으므로, 이 코드는 메타데이터도 지웁니다.

import base64, io
from PIL import Image

with Image.open("photo.jpg") as im:
    im.thumbnail((1024, 1024))
    buf = io.BytesIO()
    im.save(buf, "JPEG", quality=80)

b64 = base64.b64encode(buf.getvalue()).decode("ascii")

파일 읽기와 스트리밍은 Python의 Base64에서 더 다룹니다.

자주 생기는 문제

  • 사진이 회전된 채로 보입니다. 많은 휴대폰은 픽셀을 센서 방향 그대로 저장하고 회전 정보를 EXIF 태그에 넣습니다. 현재 브라우저는 이 태그를 적용하며, 도구가 사진을 다시 그릴 때도 보이는 방향을 유지합니다. EXIF를 무시하는 소프트웨어는 원래 방향으로 보여 줄 수 있습니다.
  • Base64가 예상보다 깁니다. 미터에서 입력 크기를 확인하세요. 메신저에서 받은 “작은” 사진도 너비가 3000픽셀일 수 있습니다.
  • API가 이미지를 거부합니다. data:image/jpeg;base64, 접두사를 원하는지 Base64만 원하는지 확인하고, 형식은 image/jpg가 아니라 image/jpeg로 보내세요.

자주 묻는 질문

data URI에는 image/jpg와 image/jpeg 중 무엇을 쓰나요?

image/jpeg입니다. image/jpg는 등록된 형식이 아닙니다. 브라우저는 이미지 바이트를 직접 살펴보기 때문에 그래도 그림을 표시하지만, 미디어 형식을 검증하는 API는 거부할 수 있습니다.

Base64로 바꾼 JPG에 GPS 위치가 아직 들어 있나요?

원본에 있었다면 네. Base64는 EXIF를 포함해 모든 바이트를 복사합니다. 지우려면 메타데이터(EXIF) 제거를 선택하세요. 인코딩 전에 메타데이터 없이 사진을 다시 그립니다.

JPG의 Base64가 /9j/로 시작하는 이유는 무엇인가요?

모든 JPEG는 바이트 FF D8 FF로 시작하고, 이 3바이트가 정확히 /9j/로 인코딩됩니다. 다르게 시작하는 문자열은 파일 이름이 무엇이든 JPEG가 아닙니다.

사진의 Base64를 더 짧게 만들려면 어떻게 하나요?

인코딩하기 전에 픽셀 수와 품질을 줄이세요. 표시 크기에 맞는 최대 너비와 75–85% 정도의 품질이면, Base64 자체에 무엇을 하든 그보다 훨씬 많이 휴대폰 사진이 줄어듭니다.