이미지의 픽셀 크기를 가져오는 셸 명령

이미지의 픽셀 크기를 가져오는 셸 명령

이미지의 픽셀 크기를 반환하는 쉘 명령이 있습니까?

convert예를 들어 다양한 크기의 다양한 gif를 사용하여 애니메이션 gif를 만들려고 합니다 convert -delay 50 1.gif 2.gif -loop 0 animated.gif.

문제는 변환이 첫 번째 이미지의 크기를 애니메이션 gif의 크기로 사용하여 이미지를 겹치고 크기가 다르기 때문에 결과가 약간 지저분하고 이전 프레임의 비트가 새 프레임 아래에 표시된다는 것입니다. .

답변1

해결책을 찾았습니다: identifyimagemagick 패키지의 일부, 정확히 제가 필요로 했던 것입니다.

$ identify color.jpg 
> color.jpg JPEG 1980x650 1980x650+0+0 8-bit DirectClass 231KB 0.000u 0:00.000

답변2

identify해당 옵션을 사용하면 눈이나 텍스트 유틸리티로 출력을 구문 분석하는 대신 자신에게 가장 적합한 형식으로 너비와 높이를 출력할 수 있습니다 . -format예를 들어:

$ identify -format '%w %h' img.png
100 200
$ identify -format '%wx%h' img.png
100x200

내보낼 수 있는 이미지 속성 목록은 다음에서 찾을 수 있습니다.이 페이지, 그러나 여기 질문의 경우 필요한 것은 , %w%h각각 이미지의 너비와 높이를 픽셀 단위로 제공하는 것 같습니다.


많은 수의 이미지를 출력하고 출력을 정렬함으로써 제공되는 유연성은 -format픽셀 단위로 가장 큰 이미지를 찾는 데 매우 유용했습니다.%[fx:w*h]

-ping더 복잡한 이스케이프를 사용하여 많은 이미지로 작업하고 프로그램이 전체 이미지를 로드하는 데 시간을 낭비하지 않도록 하려는 경우 이 옵션을 지정할 수 있습니다. 간단한 이스케이프의 경우 -ping이것이 기본값이어야 합니다. -ping및 사이의 선택 에 대한 자세한 내용을 +ping찾을 수 있습니다.여기.

답변3

"file" 명령을 사용하여 필요한 정보를 얻을 수 있습니다.

~# file cha_2.png 
cha_2.png: PNG image data, 656 x 464, 8-bit/color RGB, non-interlaced

답변4

치수를 보려면 identify:

$ identify color.jpg 
> color.jpg JPEG 1980x650 1980x650+0+0 8-bit DirectClass 231KB 0.000u 0:00.000

cut | sed필드 3에서 값을 추출합니다.

identify ./color.jpg | cut -f 3 -d " " | sed s/x.*// #width
identify ./color.jpg | cut -f 3 -d " " | sed s/.*x// #height

변수에 할당:

W=`identify ./color.jpg | cut -f 3 -d " " | sed s/x.*//` #width
H=`identify ./color.jpg | cut -f 3 -d " " | sed s/.*x//` #height
echo $W
> 1980
echo $H
> 650

관련 정보