
이미지의 픽셀 크기를 반환하는 쉘 명령이 있습니까?
convert
예를 들어 다양한 크기의 다양한 gif를 사용하여 애니메이션 gif를 만들려고 합니다 convert -delay 50 1.gif 2.gif -loop 0 animated.gif
.
문제는 변환이 첫 번째 이미지의 크기를 애니메이션 gif의 크기로 사용하여 이미지를 겹치고 크기가 다르기 때문에 결과가 약간 지저분하고 이전 프레임의 비트가 새 프레임 아래에 표시된다는 것입니다. .
답변1
해결책을 찾았습니다: identify
imagemagick 패키지의 일부, 정확히 제가 필요로 했던 것입니다.
$ 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