Mac์์ ์ฃผ๋ฏผ๋ฑ๋ก์ฆ ์ฌ๋ฐ๊ธ์ฉ ์ฌ์ง ํธ์งํ๊ธฐ
Homebrew ํจํค์ง ์ค์น๋ถํฐ EXIF ์ ๊ฑฐ, ํฌ๊ธฐ ์กฐ์ ๊น์ง ํ ๋ฒ์
์ฃผ๋ฏผ๋ฑ๋ก์ฆ ์ฌ๋ฐ๊ธ์ ์จ๋ผ์ธ์ผ๋ก ์ ์ฒญํ๋ ค๊ณ ๋ณด๋ฉด, ์์ธ๋ก ๊ฐ์ฅ ๋งํ๋ ๋ถ๋ถ์ด ์ฌ์ง ํ์ผ ์ค๋น์ ๋๋ค.
- ์ฌ์ง์ JPG์ธ๋ฐ ์ ๋ก๋๊ฐ ์ ๋๊ฑฐ๋
- ์ฉ๋์ด ๋๋ฌด ํฌ๊ฑฐ๋
- ๋ถํ์ํ ๋ฉํ๋ฐ์ดํฐ(EXIF)๊ฐ ๋ถ์ด ์๊ฑฐ๋
- ํฌ๋กญ์ด ์ด์ํด์ ์ฆ๋ช ์ฌ์ง์ฒ๋ผ ๋ณด์ด์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ด๋ฒ ๊ธ์์๋ Mac์์ ํฐ๋ฏธ๋๋ง์ผ๋ก ์ฃผ๋ฏผ๋ฑ๋ก์ฆ ์ฌ๋ฐ๊ธ์ฉ ์ฆ๋ช ์ฌ์ง ํ์ผ์ ์ ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
ํต์ฌ์ ์๋ 4๋จ๊ณ์ ๋๋ค.
- Mac์ ํ์ํ ํจํค์ง ์ค์น
- ์ฌ์ง ์ ๋ณด ํ์ธ
- EXIF ๋ฉํ๋ฐ์ดํฐ ์ ๊ฑฐ
- JPG๋ก ๋ค์ ์ ์ฅํ๊ณ ํฌ๊ธฐ ์กฐ์
์ฐธ๊ณ ๋ก macOS์๋ ๊ธฐ๋ณธ์ผ๋ก sips๋ผ๋ ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๋๊ตฌ๊ฐ ์๊ณ , ๋ฉํ๋ฐ์ดํฐ ์ ๊ฑฐ์ฉ์ผ๋ก๋ exiftool, ์ถ๊ฐ ํธ์ง์ฉ์ผ๋ก๋ ImageMagick์ ๋ง์ด ์๋๋ค. Homebrew์์๋ brew install exiftool, brew install imagemagick์ผ๋ก ์ค์นํ ์ ์์ต๋๋ค. exiftool์ EXIF ๋ฉํ๋ฐ์ดํฐ ์ฝ๊ธฐ/์ฐ๊ธฐ ๋๊ตฌ์ด๊ณ , imagemagick์ ๋ค์ํ ์ด๋ฏธ์ง ํฌ๋งท ๋ณํ๊ณผ ํธ์ง์ ์ง์ํฉ๋๋ค.
1. ์ค๋น๋ฌผ: Mac์ ํ์ํ ํจํค์ง ์ค์น
Mac์์ Homebrew๋ฅผ ์ฐ๊ณ ์๋ค๋ฉด ์๋๋ง ์ค์นํ๋ฉด ๋ฉ๋๋ค.
brew install exiftool
brew install imagemagick
์ค์น ํ์ธ:
exiftool -ver
magick -version
exiftool์ ์ฌ์ง ์ ์นด๋ฉ๋ผ ์ ๋ณด, ์ดฌ์ ์๊ฐ, GPS ๊ฐ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๊ฑฐ๋ ์ง์ธ ๋ ์ ์ฉํ๊ณ , ImageMagick์ magick ๋ช ๋ น์ผ๋ก ํฌ๋งท ๋ณํ, ํฌ๊ธฐ ์กฐ์ , ์๋ผ๋ด๊ธฐ๋ฅผ ํ ์ ์์ต๋๋ค. sips๋ macOS ๊ธฐ๋ณธ ๋ด์ฅ ๋๊ตฌ๋ผ ๋ณ๋ ์ค์น ์์ด ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
2. ํ์ฌ ์ฌ์ง ์ ๋ณด ํ์ธํ๊ธฐ
์๋ฅผ ๋ค์ด ํ์ผ๋ช ์ด photo.jpg๋ผ๊ณ ํด๋ณด๊ฒ ์ต๋๋ค.
๊ฐ์ฅ ๊ฐ๋จํ๊ฒ ํ์ผ ํ์ ๋ณด๊ธฐ
file photo.jpg
์๋ฅผ ๋ค๋ฉด ์ด๋ฐ ์์ผ๋ก ๋์ต๋๋ค.
photo.jpg: JPEG image data, Exif standard: ...
์ด ๋ป์ ํ์ผ ํฌ๋งท์ JPEG์ธ๋ฐ, ๋ด๋ถ์ EXIF ๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด ์๋ค๋ ์๋ฏธ์ ๋๋ค.
EXIF ์์ธํ ๋ณด๊ธฐ
exiftool photo.jpg
์ฌ๊ธฐ์ ํ์ธํ ์ ์๋ ์ ๋ณด๋ ์๋ฅผ ๋ค๋ฉด:
- ์ดฌ์ ๊ธฐ๊ธฐ
- ์ดฌ์ ๋ ์ง
- ๋ฐฉํฅ(orientation)
- ํด์๋
- GPS ์ ๋ณด
- ํธ์ง ํ๋ก๊ทธ๋จ ์ ๋ณด
์จ๋ผ์ธ ๋ฏผ์์ฉ ์ฌ์ง์ ๋ณดํต ๋ถํ์ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ ๊น๋ํ JPG๊ฐ ๊ด๋ฆฌํ๊ธฐ ํธํฉ๋๋ค.
ํฝ์ ํฌ๊ธฐ๋ง ๋น ๋ฅด๊ฒ ๋ณด๊ธฐ
sips -g pixelWidth -g pixelHeight photo.jpg
3. EXIF ๋ฉํ๋ฐ์ดํฐ ์ ๊ฑฐํ๊ธฐ
์ง๋ฌธ์ ๋ง์ด ๋ฐ๋ ๋ถ๋ถ์ด ๋ฐ๋ก ์ด๊ฒ์ ๋๋ค.
file ๋ช ๋ น์์ Exif standard๊ฐ ๋ณด์ด๋ ๊ฒ์ JPG๊ฐ ์๋ ํ์ผ์ด๋ผ๋ ๋ป์ด ์๋๋ผ, JPG ์์ EXIF ์ ๋ณด๊ฐ ๋ค์ด ์๋ค๋ ๋ป์ ๋๋ค.
์ฆ, “Exif๊ฐ ์๋ jpg๋ก ๋ฐ๊พธ๊ธฐ”๋ ๋ณดํต ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ JPG๋ก ๋ค์ ๋ง๋๋ ๊ฒ์ ๋๋ค.
์๋ณธ ๋ฐฑ์ ์ ๋จ๊ธฐ๊ณ EXIF ์ ๊ฑฐ
exiftool -all= photo.jpg
์ด๋ ๊ฒ ํ๋ฉด:
- photo.jpg๋ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์ ๊ฑฐ๋ ์ ํ์ผ์ด ๋๊ณ
- ์๋ณธ์ photo.jpg_original๋ก ๋จ์ต๋๋ค
๋ฐฑ์ ์์ด ๋ฐ๋ก ๋ฎ์ด์ฐ๊ธฐ
exiftool -overwrite_original -all= photo.jpg
์ ๊ฑฐ ํ ํ์ธ
exiftool photo.jpg
file photo.jpg
์ด ๊ณผ์ ์ ๊ฑฐ์น๋ฉด ์นด๋ฉ๋ผ ๋ชจ๋ธ, ์ดฌ์ ์๊ฐ, GPS ๊ฐ์ ์ ๋ณด๊ฐ ์ฌ๋ผ์ง ๋ณด๋ค ๋จ์ํ JPG ํ์ผ๋ก ์ ๋ฆฌ๋ฉ๋๋ค. exiftool์ EXIF๋ฅผ ํฌํจํ ๋ค์ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์๋ ๋๊ตฌ์ ๋๋ค.
4. Mac ๊ธฐ๋ณธ ๋๊ตฌ๋ง์ผ๋ก JPG ๋ค์ ์ ์ฅํ๊ธฐ
๋ณ๋ ํจํค์ง ์์ด macOS ๊ธฐ๋ณธ ๋๊ตฌ sips๋ง์ผ๋ก๋ ๊ฝค ๋ง์ ์์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
JPG๋ก ๋ค์ ์ ์ฅ
sips -s format jpeg photo.jpg --out clean.jpg
๋๋น ๊ธฐ์ค์ผ๋ก ํฌ๊ธฐ ์ค์ด๊ธฐ
sips -Z 1200 clean.jpg --out resized.jpg
-Z๋ ๊ธด ๋ณ ๊ธฐ์ค์ผ๋ก ๋ฆฌ์ฌ์ด์ฆํฉ๋๋ค.
์ฆ๋ช ์ฌ์ง ์ ๋ก๋์์๋ ์ง๋์น๊ฒ ํฐ ์๋ณธ๋ณด๋ค ์ ๋นํ ํฌ๊ธฐ์ JPG๊ฐ ๋ ๋ค๋ฃจ๊ธฐ ์ฝ์ต๋๋ค.
sips๋ macOS์ Scriptable Image Processing System์ผ๋ก, ์ด๋ฏธ์ง ์ ๋ณด ์กฐํ์ ํฌ๊ธฐ ๋ณ๊ฒฝ, ํฌ๋งท ๋ณํ ๋ฑ์ ์ง์ํฉ๋๋ค.
5. ImageMagick์ผ๋ก ์กฐ๊ธ ๋ ๊น๋ํ๊ฒ ์ ๋ฆฌํ๊ธฐ
์กฐ๊ธ ๋ ์ ์ดํ๊ณ ์ถ๋ค๋ฉด ImageMagick์ด ํธํฉ๋๋ค.
๋ฉํ๋ฐ์ดํฐ ์ ๊ฑฐ + ์ ํ์ผ๋ก ์ ์ฅ
magick photo.jpg -strip clean.jpg
-strip ์ต์ ์ ํ๋กํ๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ ๋ ์์ฃผ ์๋๋ค.
๊ฐ๋ก 600px ๊ธฐ์ค์ผ๋ก ๋ฆฌ์ฌ์ด์ฆ
magick clean.jpg -resize 600x final.jpg
JPG ํ์ง๊น์ง ์กฐ์
magick clean.jpg -strip -resize 600x -quality 92 final.jpg
์ด๋ ๊ฒ ํ๋ฉด ์ ๋ก๋์ฉ์ผ๋ก ๋ฌด๋ํ JPG ํ์ผ์ ๋ง๋ค ์ ์์ต๋๋ค.
6. ์ฆ๋ช ์ฌ์ง์ฒ๋ผ ๋ค๋ฌ์ ๋์ ๊ธฐ๋ณธ ์์น
์ฌ๊ธฐ์ ์ค์ํ ๊ฑด ์ ๋ถ์ฆ ์๋ณธ์ ์์ ํ๋ ๊ฒ์ด ์๋๋ผ, ์ ์ถ์ฉ ์ฆ๋ช ์ฌ์ง ํ์ผ์ ์ ๋ฆฌํ๋ ๊ฒ์ ๋๋ค.
๊ถ์ฅ ์์ ์ ๋ณดํต ์ฌ๊ธฐ๊น์ง์ ๋๋ค.
- ๋ฐ๊ธฐ๋ ์๊ฐ์ ๊ณผ๋ํ ๋ณด์ ์ ํผํ๊ธฐ
- ์ผ๊ตด์ด ์์ฐ์ค๋ฝ๊ฒ ๋ณด์ด๋๋ก ์๋ฅด๊ธฐ
- ๋ฐฐ๊ฒฝ์ด ๋๋ฌด ๋ณต์กํ๋ฉด ์ดฌ์ ๋จ๊ณ์์ ๋ค์ ์ค๋นํ๊ธฐ
- JPG ํฌ๋งท ์ ์ง
- ๋ฉํ๋ฐ์ดํฐ ์ ๊ฑฐ
- ์ ์ ํ ํฝ์ ํฌ๊ธฐ์ ์ฉ๋์ผ๋ก ์กฐ์
๋ฐ๋๋ก ์๋ ๊ฐ์ ์์ ์ ํผํ๋ ๊ฒ ์ข์ต๋๋ค.
- ์ผ๊ตด ํํ๋ฅผ ํฌ๊ฒ ๋ฐ๊พธ๋ ๋ณด์
- ํฉ์ฑ
- ๋ฐฐ๊ฒฝ ์์กฐ
- ์ ๋ถ์ฆ ์๋ณธ ์ด๋ฏธ์ง ์์
- ๋ฌธ์ ๋ด์ฉ ๋ณ๊ฒฝ
์จ๋ผ์ธ ์ฌ๋ฐ๊ธ ์ฌ์ง์ ์ค๋ฌผ๊ณผ ์ผ์นํ๋ ์ต๊ทผ ์ฆ๋ช ์ฌ์ง์ผ๋ก ์ค๋นํ๋ ๊ฒ์ด ๊ฐ์ฅ ์์ ํฉ๋๋ค.
7. ์ค์ ์ฉ ์ถ์ฒ ๋ช ๋ น์ด ์กฐํฉ
์ ๊ฐ ๊ฐ์ฅ ๋ฌด๋ํ๊ฒ ์ถ์ฒํ๋ ํ๋ฆ์ ์๋์ ๋๋ค.
1๋จ๊ณ: ์๋ณธ ํ์ธ
file photo.jpg
exiftool photo.jpg
sips -g pixelWidth -g pixelHeight photo.jpg
2๋จ๊ณ: ๋ฉํ๋ฐ์ดํฐ ์ ๊ฑฐ
exiftool -overwrite_original -all= photo.jpg
3๋จ๊ณ: ์ JPG๋ก ์ ์ฅํ๋ฉด์ ํฌ๊ธฐ ์กฐ์
magick photo.jpg -strip -resize 600x -quality 92 final.jpg
4๋จ๊ณ: ์ต์ข ํ์ธ
file final.jpg
exiftool final.jpg
sips -g pixelWidth -g pixelHeight final.jpg
ls -lh final.jpg
8. ํจํค์ง ์ค์น ์์ด ์ต์ ๊ตฌ์ฑ์ผ๋ก ๋๋ด๋ ๋ฐฉ๋ฒ
Homebrew ์ค์น๊ฐ ๋ฒ๊ฑฐ๋กญ๋ค๋ฉด macOS ๊ธฐ๋ณธ ๋๊ตฌ๋ง์ผ๋ก๋ ์ด๋ ์ ๋ ๊ฐ๋ฅํฉ๋๋ค.
sips -s format jpeg photo.jpg --out clean.jpg
sips -Z 600 clean.jpg --out final.jpg
file final.jpg
๋ค๋ง EXIF ์ ๊ฑฐ ํ์ธ๊น์ง ํ์คํ ํ๋ ค๋ฉด exiftool์ด ๊ฐ์ฅ ํธํฉ๋๋ค.
9. ๋ง๋ฌด๋ฆฌ
Mac์์ ์ฃผ๋ฏผ๋ฑ๋ก์ฆ ์ฌ๋ฐ๊ธ์ฉ ์ฌ์ง ํ์ผ์ ์ค๋นํ ๋ ํต์ฌ์ ๋ณต์กํ์ง ์์ต๋๋ค.
- JPG์ธ์ง ํ์ธํ๊ณ
- ๋ถํ์ํ EXIF ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๊ณ
- ์ ๋นํ ํฌ๊ธฐ๋ก ์ค์ฌ์
- ์์ฐ์ค๋ฌ์ด ์ฆ๋ช ์ฌ์ง ํํ๋ก ์ ๋ฆฌํ๋ ๊ฒ
ํฐ๋ฏธ๋์ ์ต์ํ๋ค๋ฉด GUI ํธ์ง๊ธฐ๋ณด๋ค ์คํ๋ ค ๋ ๋น ๋ฅด๊ณ ์ฌํ์ฑ ์๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋ค์ ๊ฐ์กฐํ๋ฉด, ์ด ๊ธ์ ์ฌ๋ฐ๊ธ ์ ์ฒญ์ฉ ์ฌ์ง ํ์ผ์ ์ ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ด์ฉ์ ๋๋ค. ์ฃผ๋ฏผ๋ฑ๋ก์ฆ ์๋ณธ ์ด๋ฏธ์ง๋ ์ ๋ถ์ฆ ๋ฌธ์ ์์ฒด๋ฅผ ์์ ํ๋ ๋ฐฉ์์ ๋ค๋ฃจ์ง ์๋ ํธ์ด ์์ ํ๊ณ ์ ์ ํฉ๋๋ค.
'๐ Routine' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Challenge] ์์ฑํ AI ๋ ๋ํ ์ฑ๋ฆฐ์ง (2) | 2024.04.13 |
|---|---|
| [CMSA] Yann Lecun | Objective-Driven AI (2) (0) | 2024.04.10 |
| [CMSA] Yann Lecun | Objective-Driven AI (1) (0) | 2024.04.06 |
| [Network] 304 Not Modified (0) | 2024.03.13 |
| [Network] WSL ๋คํธ์ํฌ ์ดํด ๋๊ธฐ (0) | 2024.01.31 |