셸에서 이미지 크기 구하기
셸에서 CLI 커맨드로 사진 이미지의 가로 세로 크기를 알아내는 방법을 두 가지 방법에 관해 정리해 보자. 사실은 IamgeMagick를 이용하는 두 가지 방법이며 사실상 동일한 내용이기는 하다.
참고로 예제 커맨드 제일 앞의 $
는 셸 프롬프트다. 실제 커맨드는 이후에 나온 것들이니 이런 표현(?)에 익숙하지 않다면 주의하자.
identify
ImageMagick의 identify
라는 도구를 사용하면 이미지 정보를 구할 수 있다.
$ identify image.jpg
image.jpg JPEG 1280x758 1280x758+0+0 8-bit sRGB 324498B 0.000u 0:00.004
만약 여기서 픽셀 단위의 가로 세로 크기만 얻어내고 싶다면 -format
옵션을 이용해 포매팅을 지정해 줄 수 있다.
$ identify -format "%wx%h" image.jpg
1280x758
이렇게 가공하면 파이프로 얻어서 다른 용도로 쓰기에 더욱 쉬울 것 같다.
magick(or convert)
ImageMagick의 핵심 커맨드인 magick
를 이용해도 동일한 일을 할 수 있다. 예를 들어 아래와 같은 형식으로 픽셀 단위의 가로 세로 크기를 동일한 포매팅 규격으로 얻을 수 있다.
Desktop $ magick image.jpg -print "%wx%h" /dev/null
1280x758
magick
커맨드가 생소하다면 이 도구를 좀 오래 쓴 것일 지도 모르겠다. 어쨌거나 이 커맨드는 convert
와 사용법이 동일하다.
$ convert image.jpg -print "%wx%h" /dev/null
WARNING: The convert command is deprecated in IMv7, use "magick" instead of "convert" or "magick convert"
1280x758
단지 메시지로 알 수 있겠지만 이제 convert
커맨드는 만료되어 사라질 운명인 듯하다.
여담
사실 identify
커맨드는 magick identify
커맨드의 단축 커맨드 같은 느낌이라고 생각할 수 있을 것 같다. 어쨌거나 같은 도구를 쓰는 동일한 방법 같지만 그래도 뭔가 느낌이 달라서 두 가지 방법으로 정의해 봤다.
개인적으로 이 기능은 셸 커맨드로 이미지 자동 최적화(압축)를 구현하기 위해 찾아보다 알게 된 정보들이다. 비슷한 용도를 원한다면 아마도 의미 있는 정보가 될 것 같다.