
이미지 최적화는 웹사이트 속도 향상과 SEO에 매우 중요합니다. 특히 WEBP 포맷은 용량을 줄이면서도 높은 퀄리티를 유지하기 때문에, 대량의 PNG·JPEG·GIF 파일을 일괄로 WEBP로 변환하는 방법을 알아두면 효율적입니다. 이 글에서는 ImageMagick을 활용한 수동 변환부터 배치 파일(.bat)을 이용한 일괄 자동화, 폴더 감시 스크립트를 통한 실시간 변환까지, 다양한 방법을 단계별로 정리했습니다. 또한 가로×세로 크기를 900×600처럼 강제 조정하는 방법까지 함께 다룹니다.
1. 필수 준비물
- Windows 64비트 환경
- ImageMagick 설치
– ImageMagick 다운로드 페이지에서ImageMagick-7.*-Q8-x64-static.exe
버전을 받아 설치
– 설치 시 반드시 “Add application directory to your system path” 옵션을 체크
– 설치 확인: CMD 또는 PowerShell에서magick -version
명령어를 입력하여 버전 정보가 출력되면 정상 설치 완료 - 원본 이미지 폴더 (예:
C:\png_webp_files
) - 결과 저장용 폴더
– 900×506용:C:\webp_output
– 900×600용:C:\webp_output_900x600
2. 수동으로 한 폴더 안 모든 이미지 일괄 변환
2.1 같은 폴더에 WEBP 생성 (간단 명령어)
- CMD(명령 프롬프트) 또는 PowerShell 실행
- 원본 이미지 폴더로 이동
cd /d C:\png_webp_files
- 모든 PNG 파일을 같은 폴더 내 WEBP로 변환
magick mogrify -format webp *.png
- 변환 후
image1.png
→image1.webp
,photoA.png
→photoA.webp
형태로 같은 폴더에 생성 - 원본 PNG는 그대로 유지
- 변환 후
2.2 별도 폴더에 WEBP 모아서 생성
- 결과 폴더 생성 (한 번만)
mkdir C:\webp_output
- 원본 폴더로 이동
cd /d C:\png_webp_files
- 모든 PNG 파일을
C:\webp_output
에 WEBP로 변환magick mogrify -path C:\webp_output -format webp *.png
- 결과:
– 원본 폴더(C:\png_webp_files
)에는 PNG만 남아 있고,
– WEBP 파일은 전부C:\webp_output
에 저장됨
- 결과:
3. 배치 파일(.bat)로 클릭 한 번에 변환 자동화
3.1 배치 파일 생성 및 내용
- 배치 파일명:
C:\png_webp_files\convert_all_to_webp_900x600.bat
- 메모장으로 열어 아래 스크립트를 붙여넣고 저장
@echo off rem ────────────────────────────────────────────────────── rem 모든 주요 이미지 파일을 강제 크기 900×600으로 리사이즈 후 WEBP로 변환 rem ────────────────────────────────────────────────────── magick mogrify ^ -path C:\webp_output_900x600 ^ -resize 900x600! ^ -format webp ^ C:\png_webp_files\*.png ^ C:\png_webp_files\*.jpg ^ C:\png_webp_files\*.jpeg ^ C:\png_webp_files\*.bmp ^ C:\png_webp_files\*.gif ^ C:\png_webp_files\*.tif ^ C:\png_webp_files\*.tiff exit
-path C:\webp_output_900x600
: 최종 WEBP 파일을C:\webp_output_900x600
에 저장-resize 900x600!
: 비율 무시하고 강제 900×600 픽셀로 리사이즈-format webp
: WEBP 포맷으로 출력- 와일드카드(
*.png
,*.jpg
등)로 한 번에 모든 확장자 파일 변환 - 마지막
exit
으로 작업 완료 즉시 CMD 창 자동 종료
- 원본 폴더에 샘플 이미지 넣기 (테스트용)
3.2 배치 파일 실행
C:\png_webp_files
폴더에 PNG·JPG·BMP·GIF·TIF 파일을 넣은 후,convert_all_to_webp_900x600.bat
파일을 더블클릭 → 변환 완료 후 CMD 창 자동 종료- 결과는
C:\webp_output_900x600
폴더에서 확인 가능
4. 바로가기(Shortcut)를 생성하여 작업표시줄에 고정하기
- 바탕화면에서 바로가기 만들기
– 빈 공간 우클릭 → “새로 만들기 → 바로 가기”
– 위치 입력에 아래 경로 붙여넣기:
C:\Windows\System32\cmd.exe /c "C:\png_webp_files\convert_all_to_webp_900x600.bat"
(/c 옵션 덕분에 변환 후 CMD 창이 자동으로 닫힙니다)
– 바로가기 이름 예: PNG→WEBP 900×600 → “마침” - 아이콘 변경(선택)
– 만든 바로가기 우클릭 → 속성 → 아이콘 변경 → 원하는 아이콘 선택 → 확인 - 작업표시줄에 고정
– 바로가기 위에서 우클릭 → 작업 표시줄에 고정 → 클릭 한 번으로 실행 가능
5. 폴더 감시 스크립트로 실시간 자동 변환 (선택)
수동이나 배치 파일보다 더 편리하게, 폴더에 이미지 파일을 넣는 즉시 자동으로 WEBP로 변환하고 싶다면, PowerShell의 FileSystemWatcher를 활용하면 됩니다.
# ───────────────────────────────────────────
# watch-convert.ps1
# PNG, JPG 등 파일을 감시하여 900×600 WEBP 자동 변환
# ───────────────────────────────────────────
param(
[string] $WatchFolder = "C:\png_webp_files",
[string] $OutputFolder = "C:\webp_output_900x600"
)
# 1) OutputFolder가 없으면 생성
if (-Not (Test-Path $OutputFolder)) {
New-Item -ItemType Directory -Path $OutputFolder | Out-Null
}
# 2) FileSystemWatcher 생성(.png, .jpg 등 감시)
$fsw = New-Object System.IO.FileSystemWatcher
$fsw.Path = $WatchFolder
$fsw.Filter = "*.*"
$fsw.IncludeSubdirectories = $false
$fsw.EnableRaisingEvents = $true
# 3) 파일 생성(Created) 시 바로 변환
$action = {
$fullPath = $Event.SourceEventArgs.FullPath
$ext = [System.IO.Path]::GetExtension($fullPath).ToLower()
# 변환 가능한 확장자 목록
if ($ext -in ".png", ".jpg", ".jpeg", ".bmp", ".gif", ".tif", ".tiff") {
$baseName = [System.IO.Path]::GetFileNameWithoutExtension($fullPath)
$destPath = Join-Path $Event.Sender.OutputFolder ("$baseName.webp")
Start-Process -FilePath "magick" -ArgumentList @(
"convert", "`"$fullPath`"", "-resize", "900x600!", "`"$destPath`""
) -NoNewWindow -Wait
}
}
# 4) 이벤트 핸들러 등록
Register-ObjectEvent -InputObject $fsw `
-EventName Created `
-Action $action | Out-Null
# 5) 스크립트 계속 실행 대기
Write-Host "자동 감시 ON: $WatchFolder → $OutputFolder"
while ($true) { Start-Sleep -Seconds 1 }
- 스크립트를
C:\auto_convert\watch-convert.ps1
에 저장 - PowerShell(관리자) 실행
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass cd /d C:\auto_convert .\watch-convert.ps1
- 이제
C:\png_webp_files
폴더에 JPG·PNG 등을 넣는 즉시 900×600 강제 리사이즈 → WEBP 변환 작업 수행 결과는C:\webp_output_900x600
폴더에 바로 생성 - PowerShell 창을 닫으면 감시가 중단되니 항상 백그라운드로 켜 두세요.
6. 주요 방법 비교 테이블
방법 | 장점 | 단점 |
---|---|---|
magick mogrify -format webp |
설치만 하면 바로 가능 간단 명령어 한 줄 |
변환 후 PNG·WEBP 혼합 매번 명령어 입력 필요 |
magick mogrify -path … |
결과 폴더 분리로 정리 용이 여러 폴더 관리 |
여전히 매번 명령어 입력해야 함 |
배치 파일(.bat) | 클릭 한번으로 실행 exit로 자동 종료 지원 |
배치 내용 수정 시 재저장 필요 |
폴더 감시 스크립트 | 실시간 자동 변환 파일 넣기만 하면 OK |
PowerShell 창을 항상 켜 두어야 함 설정 복잡 |
작업표시줄 바로가기 | 바로 실행 가능 CMD 창 없이도 변환 |
바로가기 경로·내용 오류 시 실패 |
7. 자주 묻는 질문
1. “비율 유지” vs “강제 크기”
– -resize 900x600
(느낌표 없이): 비율 유지하면서 최대 너비 900, 최대 높이 600 적용
– -resize 900x600!
(느낌표 붙임): 비율 무시하고 강제로 900×600으로 조정
2. 원본 폴더 내 이미지가 너무 많을 때
– mogrify
는 한 번에 전체 파일 처리
– 수천~수만 장 변환 시 시간이 오래 걸릴 수 있음
– 하위 폴더까지 재귀 처리하려면 별도 스크립트 또는 for /R
배치문 활용
3. Quality(품질) 조정
– 기본 품질은 약 75~80 정도
– 더 높은 화질 원할 경우 -quality 90
옵션 추가 가능
magick mogrify -path C:\webp_output -resize 900x600! -quality 90 -format webp C:\png_webp_files\*.png
4. 파일 이름에 공백(스페이스) 있을 때
– 전체 경로를 큰따옴표("…"
)로 감싸야 오류 발생하지 않음
magick mogrify -path "C:\webp output folder" -resize 900x600! -format webp "C:\png webp files\*.png"
5. 폴더 감시 스크립트가 작동하지 않을 때
– PowerShell 실행 정책(Set-ExecutionPolicy -Scope Process Bypass
) 허용 여부 확인
– watch-convert.ps1
내부 경로($WatchFolder
, $OutputFolder
)가 실제 폴더와 일치하는지 확인
– PowerShell 창이 켜진 상태인지 확인 (닫히면 감시 중단)
마무리
위의 5가지 주요 방법을 통해 “PNG·JPG·BMP·GIF·TIF 등 모든 이미지 파일을 900×600으로 강제 리사이즈 → WEBP 포맷으로 일괄 변환”까지 깔끔하게 자동화할 수 있습니다.
- 수동 명령어로 빠르게 테스트
- 배치 파일(.bat)로 클릭 한 번만에 변환
- 폴더 감시 스크립트로 원본 폴더에 넣는 즉시 자동 변환
- 작업표시줄 바로가기로 언제든 빠르게 실행
이제 SEO 친화적인 최적화된 이미지를 손쉽게 생성하여, 웹사이트 속도 개선과 검색엔진 노출(CTR 상승)에 적극 활용해 보세요!