← 블로그 목록
이미지작성 · 6분 읽기

BMP 를 JPG 로 바꾸는 법 — BMP 가 큰 이유와 윈도우에서 변환하는 세 가지 (실측)

받은 그림이 .bmp 이고 한 장에 6MB 가 넘어서 메일이나 업로드가 막힐 때가 있습니다. BMP 는 윈도우의 기본 비트맵 형식인데, 압축 없이 점 하나하나의 색을 그대로 적기 때문에 크기가 바이트 단위까지 계산으로 나옵니다. 윈도우 11 PC 에서 화면 캡처와 사진을 BMP 로 저장한 뒤 세 가지 방법으로 바꿔 보고 크기를 쟀습니다. 폴더째 바꾸는 한 줄 명령과, 되는 것처럼 보이지만 안 되는 지름길도 함께 정리합니다.

이미지 변환기 — 실제 실행 화면
실제 실행 화면
이 글에서 소개하는 무료 도구
이미지 변환기

BMP 를 넣으면 브라우저 안에서 JPEG·PNG·WebP 로 저장합니다. 시험해 보니 5.93MB BMP 가 71.2KB JPEG 가 됐고, 바꾸는 동안 네트워크 요청은 하나도 없었습니다.

  • ✓ 무료
  • ✓ 설치·회원가입 없음
  • ✓ 브라우저에서 바로 실행
  • ✓ 파일이 서버로 올라가지 않음
  • ✓ 소스 공개

🔒 파일을 서버나 다른 어떤 곳으로도 보내지 않습니다 — 내 컴퓨터의 브라우저 안에서만 처리합니다.

이동할 주소 — 지금 보고 있는 이 사이트(coding-now.com) 안의 페이지입니다
🔒 https://www.coding-now.com/image-converter

BMP 파일이란 — 왜 이렇게 클까

마이크로소프트 학습 문서(Types of Bitmaps)는 BMP 를 '윈도우가 장치·프로그램과 무관하게 그림을 저장하는 표준 형식'으로 소개하고, 24비트 BMP 가 흔하다고 적습니다. 같은 문서에서 JPEG 는 사진 같은 자연 풍경에 맞는 손실 압축, PNG 는 정보를 잃지 않는 압축으로 설명합니다.

파일 구조도 단순합니다. Bitmap Storage 문서에 따르면 파일 머리, 정보 머리, (필요하면) 색 표, 그리고 점 데이터 순서입니다. 보통의 24비트 BMP 라면 BM 으로 시작하는 파일 머리 14바이트, 정보 머리 40바이트 뒤에 점들이 한 줄씩 그대로 들어갑니다. BITMAPINFOHEADER 문서는 한 줄의 길이를 4바이트 단위로 올려 맞춘다고 적고 있습니다.

그래서 24비트 BMP 의 크기는 54 + 한 줄 바이트 × 세로 입니다(한 줄 바이트 = 가로 × 3 을 4의 배수로 올린 값). PowerShell 로 크기가 다른 BMP 네 개를 만들어 비교했습니다.

가로 × 세로가로 × 3한 줄(4의 배수)계산값 = 실제 파일 크기
1001 × 1003,0033,004300,454바이트
1366 × 768 (노트북 화면)4,0984,1003,148,854바이트 (3.0MB)
1920 × 1080 (FHD)5,7605,7606,220,854바이트 (5.9MB)
4032 × 3024 (휴대폰 1,200만 화소)12,09612,09636,578,358바이트 (34.9MB)

넷 모두 계산과 실제 크기가 한 바이트도 다르지 않았습니다. 줄 끝을 채워야 하는 두 크기(1001·1366)도 마찬가지입니다. BMP 의 크기는 그림 내용이 아니라 가로·세로로만 정해집니다 — 같은 크기라면 흰 바탕과 복잡한 사진이 똑같이 무겁습니다.

JPG·PNG 로 바꾸면 얼마나 작아지나

시험 그림은 두 장입니다. 이 시험을 위해 만든 1920×1080 업무 프로그램 모양의 화면 캡처(글자·표 위주)와, 1920×1200 사진(윈도우 기본 배경 가운데 하나)입니다. 각각 BMP 로 저장한 뒤 PowerShell 의 System.Drawing 기본 설정으로 PNG 와 JPG 로 다시 저장했습니다.

화면 캡처 — PNG 가 가장 작고 글자도 또렷하다
사진 — JPG 가 PNG 보다 훨씬 작다

여기서 나오는 기준은 하나입니다. 화면 캡처·도표·글자가 많은 그림은 PNG, 사진은 JPG. PNG 는 무손실이라 단색 면이 넓은 캡처에서는 BMP 를 161분의 1 로 줄이며 JPG 보다도 작았지만, 사진은 PNG 로도 2MB 가까이 남았습니다. 사진은 JPG 로 약 30분의 1 이 됐습니다.

방법 1 — 브라우저에서 바꾸기 (업로드 없음)

제가 만든 무료 이미지 변환기는 페이지 안에서만 동작하고 BMP 도 받습니다. 시험 BMP 두 장을 넣고 결과 칸의 숫자를 그대로 옮겼습니다.

파일원본JPEG (품질 80)PNG
화면 캡처 1920×10805.93MB71.2KB (-98.8%)82.7KB
사진 1920×12006.59MB145.9KB (-97.8%)2.04MB

'업로드하지 않는다'는 말을 확인하려고, 두 파일을 네 가지로 바꾸기 전과 후의 브라우저 네트워크 요청 목록을 비교했습니다. 새로 생긴 요청은 없었습니다 — 변환은 탭 안에서 끝났습니다. (PNG 는 PowerShell 보다 컸습니다. 82.7KB 대 38.6KB 로, 둘 다 무손실이지만 브라우저 쪽 인코더가 덜 압축합니다.)

방법 2 — 그림판 '다른 이름으로 저장'

윈도우는 .bmp 를 그림판으로 열도록 등록해 두고 있고(이 PC 레지스트리의 Paint.Picture), 그림판의 파일 → 다른 이름으로 저장 에 JPEG·PNG 가 있습니다. 한두 장이면 가장 빠른 길입니다. 이 글을 쓰면서 그림판은 직접 실행하지 않아서, 그림판으로 저장한 크기는 위 표에 넣지 않았습니다.

방법 3 — 폴더째 PowerShell 한 줄

BMP 캡처가 폴더에 잔뜩 쌓였다면, 그 폴더에서 PowerShell 을 열고 아래 한 줄을 붙여 넣습니다. .bmp 마다 옆에 .jpg 를 만들고 원본은 그대로 둡니다.

powershell
Add-Type -AssemblyName System.Drawing; Get-ChildItem *.bmp | ForEach-Object { $i = [System.Drawing.Image]::FromFile($PSItem.FullName); $i.Save([IO.Path]::ChangeExtension($PSItem.FullName, '.jpg'), [System.Drawing.Imaging.ImageFormat]::Jpeg); $i.Dispose() }

이 PC(윈도우 PowerShell 5.1)에서 FHD BMP 20장(합계 124,417,080바이트)이 0.3초 만에 JPG 20장(합계 2,285,560바이트)이 됐습니다. 캡처라면 '.jpg' 를 '.png' 로, Jpeg 를 Png 로 바꾸면 PNG 로 저장됩니다.

💡

마지막의 $i.Dispose() 를 빼지 마세요. System.Drawing 은 그림 객체를 놓아줄 때까지 원본 파일을 잠가 두어서, 빠뜨리면 PowerShell 을 닫기 전까지 BMP 를 지우거나 옮기지 못합니다.

확장자만 .jpg 로 바꾸면 안 되는 이유

이름을 바꾸면 이름표만 바뀌고 속은 그대로

그럴듯해 보이는 게 함정입니다. 이름만 바꾼 screen.jpg 를 크롬 156 에서 열면 1920×1080 으로 멀쩡히 보입니다 — 브라우저는 이름이 아니라 파일 앞부분을 보기 때문입니다. 하지만 파일은 여전히 42 4D(BM)로 시작했고 6,220,854바이트 그대로였습니다. 진짜 JPEG 는 FF D8 FF 로 시작합니다. 내용을 검사하는 업로드나 확장자를 믿는 프로그램에서는 어긋나고, 처음 문제였던 용량도 그대로입니다.

어떤 형식으로 저장할까

그림저장 형식이 시험에서
화면 캡처·도표·스캔한 글자PNG6.2MB → 38.6KB, 무손실
사진JPG6.9MB → 229KB(PowerShell 기본) / 146KB(품질 80)
나중에 투명 배경이 필요PNG24비트 BMP 는 원래 투명 정보가 없음

자주 묻는 질문

Q. BMP 파일이란 무엇인가요?

윈도우의 표준 비트맵 그림 형식입니다. 24비트 BMP 는 54바이트 머리 뒤에 점 하나당 3바이트를 압축 없이 적기 때문에, 같은 그림의 JPG·PNG 보다 훨씬 큽니다.

Q. BMP 를 JPG 로 바꾸면 화질이 떨어지나요?

JPG 는 손실 압축이라 아주 조금 정보가 빠집니다. 사진에서는 대개 눈에 띄지 않지만 날카로운 글자 주변에서는 보일 수 있습니다. 화면 캡처는 PNG 로 저장하세요 — 무손실이고, 이 시험에서는 JPG 보다 작기까지 했습니다.

Q. 확장자만 .jpg 로 바꾸면 안 되나요?

안 됩니다. 속은 그대로 BMP(첫 글자 BM)이고 크기도 같습니다. 일부 프로그램에서는 열려서 된 것처럼 보이지만, 파일을 검사하는 곳에서는 JPEG 로 받아 주지 않습니다.

Q. BMP 여러 장을 한꺼번에 바꾸려면?

그 폴더에서 위의 PowerShell 한 줄을 실행하세요. 이 PC 에서 FHD BMP 20장을 0.3초에 바꿨고 원본은 남았습니다.

이 글에서 소개하는 무료 도구
이미지 변환기

BMP 를 넣으면 브라우저 안에서 JPEG·PNG·WebP 로 저장합니다. 시험해 보니 5.93MB BMP 가 71.2KB JPEG 가 됐고, 바꾸는 동안 네트워크 요청은 하나도 없었습니다.

  • ✓ 무료
  • ✓ 설치·회원가입 없음
  • ✓ 브라우저에서 바로 실행
  • ✓ 파일이 서버로 올라가지 않음
  • ✓ 소스 공개

🔒 파일을 서버나 다른 어떤 곳으로도 보내지 않습니다 — 내 컴퓨터의 브라우저 안에서만 처리합니다.

이동할 주소 — 지금 보고 있는 이 사이트(coding-now.com) 안의 페이지입니다
🔒 https://www.coding-now.com/image-converter

댓글 0

아직 댓글이 없습니다. 첫 댓글을 남겨 주세요.

댓글은 회원만 쓸 수 있습니다.

광고·욕설·비방·개인정보·불법 내용이 담긴 댓글은 숨기거나 지웁니다. 광고·홍보 글이나 혐오·비방 글을 올린 회원은 강제 탈퇴되고 쓴 글이 모두 지워집니다. 댓글은 닉네임과 함께 공개됩니다. 개인정보처리방침

다른 글