← 블로그 목록
이미지작성 · 9분 읽기dev.to 영문판

WebP를 JPG로 바꾸는 법 — 설치 없이, 여러 장도 한 번에

인터넷에서 사진을 저장했는데 파일 이름이 `.webp` 로 끝나 있고, 보내 주려는 곳이나 오래된 프로그램에서 받아 주지 않는 경우가 있습니다. WebP는 구글이 만든 이미지 형식으로 같은 화질에 파일이 작아서 요즘 웹사이트가 즐겨 씁니다. 다만 아직 받아 주지 않는 곳이 있어 JPG로 바꿔야 할 때가 생깁니다. 이름만 .jpg 로 바꾸면 왜 안 되는지, 설치 없이 바꾸는 방법 세 가지, 투명하거나 움직이는 WebP를 바꿀 때 조심할 점을 정리했습니다.

이 글에서 소개하는 무료 도구
이미지 변환기 — WebP·PNG·JPEG 변환

WebP를 끌어다 놓고 JPEG나 PNG로 저장합니다. 브라우저 안에서 처리해 파일이 서버로 올라가지 않습니다.

무료로 사용하기

받은 그림이 왜 .webp 일까

WebP는 구글이 만든 이미지 형식입니다. 구글 문서에 따르면 손실 압축은 같은 화질(SSIM 기준)에서 JPEG보다 25~34% 작고, 무손실 압축은 PNG보다 26% 작습니다. 투명도 담을 수 있고 GIF처럼 움직이는 그림도 됩니다. 파일이 작으면 웹사이트가 빨리 열리니, 사진을 WebP로 내보내는 사이트가 계속 늘고 있습니다.

문제는 받는 쪽입니다. 윈도우는 10 버전 1809부터 WebP를 지원하고, 마이크로소프트 스토어의 WebP 이미지 확장이 설치돼 있으면 파일 탐색기 미리보기와 사진 앱에서 그대로 열립니다(이 글을 쓴 PC에는 Microsoft.WebpImageExtension 1.2.31 이 설치돼 있었습니다). 그런데 서류를 올리는 사이트, 관공서 양식, 오래된 편집 프로그램처럼 JPG·PNG만 받는 곳이 아직 많습니다. 그래서 변환이 필요해집니다.

이름만 .jpg 로 바꾸면 안 되는 이유

가장 흔한 오해입니다. 파일 이름의 확장자는 그냥 이름표일 뿐이고, 파일 안에 들어 있는 내용이 형식을 정합니다. photo.webpphoto.jpg 로 바꿔도 안쪽은 그대로입니다.

이름만 바꾼 파일과 진짜 변환한 파일의 차이입니다. WebP 파일은 안쪽이 RIFF로 시작해 WEBP 라고 적혀 있고, JPEG는 FF D8 로 시작합니다.

실제로 확인해 보면 이름을 바꾼 파일도 내용은 RIFF … WEBP 로 시작하고, 윈도우는 그 파일을 열 때 여전히 WebP 디코더를 씁니다. 그래서 그림 보는 프로그램에서는 멀쩡히 열리는 일이 많아 더 헷갈립니다. 하지만 업로드 받는 쪽이 파일 내용을 검사하면 "JPG를 올리라"며 거부합니다. 내용을 JPEG로 다시 저장하는 것, 그것이 변환입니다.

방법 1 — 브라우저에서 (설치도, 업로드도 없음)

한두 장이면 이 방법이 가장 빠릅니다. 이 사이트의 이미지 변환기는 브라우저 안에서 변환하기 때문에 파일이 서버로 올라가지 않습니다.

  1. 1이미지 변환기를 열고 .webp 파일을 끌어다 놓습니다.
  2. 2출력 형식에서 JPEG 를 고릅니다. 투명을 남겨야 하면 PNG 를 고릅니다.
  3. 3품질 슬라이더로 화질과 용량을 맞춥니다(사진은 80~90 정도가 무난합니다).
  4. 4다운로드를 누릅니다. 파일 이름은 그대로, 확장자만 바뀝니다.
ℹ️

투명한 WebP를 JPEG로 고르면 배경 채움 색(기본 흰색)을 정할 수 있습니다. JPEG는 투명을 담지 못해서, 이 색으로 투명한 부분을 채워 줍니다.

방법 2 — 윈도우 PowerShell로 폴더째 (설치 없음)

사진이 수십 장이면 손으로 하나씩 하기 번거롭습니다. 윈도우에는 WebP를 읽는 기능이 이미 들어 있어서, 기본으로 깔려 있는 PowerShell만으로 변환할 수 있습니다. 시작 메뉴에서 'PowerShell'을 검색해 실행한 뒤 아래를 붙여 넣으세요. 경로만 본인 파일에 맞게 바꾸면 됩니다.

powershell
Add-Type -AssemblyName PresentationCore

$src   = "C:\사진\image.webp"
$frame = [System.Windows.Media.Imaging.BitmapDecoder]::Create([Uri]$src, 'None', 'OnLoad').Frames[0]
$enc   = New-Object System.Windows.Media.Imaging.JpegBitmapEncoder
$enc.QualityLevel = 90            # 화질 1~100
$enc.Frames.Add($frame)
$out = [System.IO.File]::Create([IO.Path]::ChangeExtension($src, '.jpg'))
$enc.Save($out); $out.Close()

폴더에 있는 WebP를 전부 바꾸려면 같은 내용을 반복문으로 돌립니다. 원본은 지우지 않고 옆에 .jpg 파일이 하나씩 생깁니다.

powershell
Add-Type -AssemblyName PresentationCore

Get-ChildItem "C:\사진\*.webp" | ForEach-Object {
    $f = [System.Windows.Media.Imaging.BitmapDecoder]::Create([Uri]$_.FullName, 'None', 'OnLoad').Frames[0]
    $e = New-Object System.Windows.Media.Imaging.JpegBitmapEncoder
    $e.QualityLevel = 90
    $e.Frames.Add($f)
    $o = [System.IO.File]::Create([IO.Path]::ChangeExtension($_.FullName, '.jpg'))
    $e.Save($o); $o.Close()
    "변환: $($_.Name)"
}
⚠️

이 방법에는 한계가 두 가지 있습니다(이 PC에서 확인). 첫째, 투명한 부분이 검은색으로 채워집니다. 윈도우 기본 디코더가 투명 정보를 빼고 읽기 때문이라, PNG로 저장해도 검게 나옵니다. 둘째, 움직이는 WebP는 첫 장면만 저장됩니다. 투명이나 움직임이 중요하면 방법 1이나 4를 쓰세요.

BitmapDecoder 에서 오류가 난다면 WebP를 읽는 기능이 없는 경우입니다. 마이크로소프트 스토어에서 'WebP 이미지 확장'을 설치하면 해결됩니다.

방법 3 — 사진 앱·그림판으로 열어서 저장

윈도우 11의 그림판과 사진 앱은 .webp 를 여는 형식으로 등록해 두고 있습니다(이 PC에서 두 앱의 지원 형식 목록을 확인했습니다). 그림판에서 열어 다른 이름으로 저장 → JPEG 를 고르면 변환이 끝납니다. 한 장을 간단히 바꿀 때 편하고, 자르기나 크기 조절을 함께 하고 싶을 때도 좋습니다.

ℹ️

파일을 두 번 눌러도 안 열리거나 미리보기가 안 보이면, 스토어에서 'WebP 이미지 확장'을 설치하세요. 무료이고, 설치하면 파일 탐색기 미리보기에서도 보입니다.

방법 4 — 파이썬으로 (투명·움직임까지)

투명을 흰 배경으로 깔끔히 처리하거나 움직이는 WebP를 GIF로 바꾸려면 파이썬 Pillow가 확실합니다. pip install pillow 한 번이면 준비가 끝납니다. 아래는 폴더 안의 WebP를 모두 JPG로 바꾸면서, 투명한 그림은 흰 배경 위에 올려 저장합니다.

python
from PIL import Image
from pathlib import Path

for src in Path(".").glob("*.webp"):
    im = Image.open(src)
    if im.mode in ("RGBA", "LA", "P"):      # 투명이 있으면 흰 배경 위에 올린다
        im = im.convert("RGBA")
        bg = Image.new("RGB", im.size, (255, 255, 255))
        bg.paste(im, mask=im.split()[3])
        im = bg
    im.convert("RGB").save(src.with_suffix(".jpg"), quality=90)
    print("변환:", src.name)

움직이는 WebP는 GIF로 바꾸면 움직임이 살아 있습니다. 아래 두 줄이면 장면이 모두 옮겨집니다.

python
from PIL import Image

Image.open("anim.webp").save("anim.gif", save_all=True, loop=0)

어떤 방법을 고를까

장수와 조건에 따라 고르면 됩니다. 투명이나 움직임이 있는 그림은 윈도우 기본 방법을 피하세요.
방법설치여러 장투명 처리움직이는 WebP
브라우저 도구필요 없음한 장씩배경색으로 채움 · PNG로 유지첫 장면
윈도우 PowerShell필요 없음폴더째검게 채워짐첫 장면
그림판·사진 앱WebP 이미지 확장한 장씩저장 형식에 따름첫 장면
파이썬 Pillow파이썬 + pillow폴더째원하는 색으로 채움 · PNG로 유지GIF로 옮길 수 있음

화질과 용량 — 바꾸면 손해 보는 부분

WebP도 JPG도 손실 압축입니다. 이미 한 번 압축된 WebP를 JPG로 다시 저장하면 화질이 조금 더 떨어지고, 용량은 오히려 커지는 경우가 많습니다. 이 글을 쓰며 시험한 그림은 WebP 2.6KB가 품질 90 JPG로 7.4KB가 됐습니다. 같은 화질이라면 WebP가 더 작다는 구글의 설명과 맞는 결과입니다.

  • 원본 WebP를 지우지 마세요. 변환본에서 다시 변환하면 화질이 계속 나빠집니다.
  • 품질은 85~95 를 권합니다. 너무 낮추면 글자나 경계에 얼룩이 보입니다.
  • 용량을 줄이는 것이 목적이라면 JPG로 바꾸지 말고 크기(가로·세로 픽셀)를 줄이는 쪽이 효과가 큽니다.
  • 로고·스크린샷처럼 경계가 뚜렷한 그림은 JPG보다 PNG가 깔끔합니다.

잘 안 될 때

  • 파일이 안 열립니다 — 마이크로소프트 스토어에서 'WebP 이미지 확장'을 설치하세요. 그러면 탐색기 미리보기와 사진 앱에서 보입니다.
  • 바꿨더니 투명한 곳이 검게 나옵니다 — 윈도우 PowerShell 방법의 한계입니다. 브라우저 도구나 파이썬으로 바꾸고, 투명을 유지하려면 PNG로 저장하세요.
  • 움직이던 그림이 멈춰 있습니다 — JPG는 한 장면만 담습니다. 움직임이 필요하면 GIF로 바꾸세요.
  • 업로드 창에서 여전히 거부됩니다 — 이름만 바꾼 파일일 수 있습니다. 변환 도구로 다시 저장한 파일인지 확인하세요.
  • 글자가 번져 보입니다 — 품질을 90 이상으로 올리거나, 글자가 많은 그림은 PNG로 저장하세요.

자주 묻는 질문

Q. 웹에서 사진을 저장하면 왜 자꾸 webp로 저장되나요?

사이트가 그림을 WebP로 올려 두었기 때문입니다. 브라우저는 화면에 보이는 그 파일을 그대로 저장하므로 확장자가 .webp 가 됩니다. 사이트가 JPG를 함께 제공하면 JPG로 저장되기도 합니다.

Q. 이름만 .jpg 로 바꿔도 열리던데요?

그림 보는 프로그램 대부분이 파일 내용을 보고 형식을 알아내기 때문입니다. 하지만 파일 안쪽은 여전히 WebP라, 확장자만 믿지 않고 내용을 검사하는 업로드 창이나 오래된 프로그램에서는 거부됩니다.

Q. 투명한 배경을 살리고 싶습니다.

JPG는 투명을 담지 못합니다. PNG나 WebP로 저장하세요. 브라우저 도구에서 PNG를 고르거나, 파이썬에서 save("out.png") 로 저장하면 투명이 남습니다.

Q. 변환하면 화질이 나빠지나요?

조금 나빠집니다. WebP도 JPG도 손실 압축이라 다시 저장할 때 한 번 더 압축됩니다. 품질 90 정도면 눈에 잘 띄지 않지만, 변환본을 또 변환하는 일은 피하세요.

Q. 휴대폰에서 받은 webp도 같은 방법으로 바꾸나요?

휴대폰에서 PC로 옮긴 뒤에는 위 방법이 그대로 적용됩니다. 브라우저 도구는 휴대폰 브라우저에서도 열리니, 파일을 고르고 JPEG로 저장하면 됩니다.

이 글에서 소개하는 무료 도구
이미지 변환기 — WebP·PNG·JPEG 변환

WebP를 끌어다 놓고 JPEG나 PNG로 저장합니다. 브라우저 안에서 처리해 파일이 서버로 올라가지 않습니다.

무료로 사용하기

다른 글