ImageMagick에 대한 수치 입력

ImageMagick에 대한 수치 입력

다음과 같이 주문한 jpg 파일로 가득 찬 디렉토리가 있습니다.

1.jpg
2.jpg
3.jpg
.
.
.
265.jpg

Windows에서는 이 파일을 병합할 수 있습니다.순차적으로, 순서대로파일에서 scan.pdf사용하기

magick %d.jpg[1-n] scan.pdf

njpg의 총 개수는 어디에 있습니까(내 경우에는 265개). MacOS에서 를 사용하여 zsh이것을 시도했지만 " no matches found: %d.jpg[1-n]"(다시 교체 n) 오류가 발생했습니다. 내가 시도하면

magick *.jpg scan.pdf

올바른 순서로 표시되지 않습니다(확실히, 숫자 순서가 아닌 알파벳 순서이기 때문입니다). 또한 시도해 보세요

magick [1-n].jpg scan.pdf

>9 에서는 작동하지 않는 것 같습니다 n. MacOS(및 Linux)의 ImageMagick에서 연속적으로 이름이 지정된 여러 파일을 결합하는 올바른 방법은 무엇입니까?

답변1

%d확장자 입니다 . 첫 번째는 파일 이름 참조이고 두 번째는 프레임/이미지 범위입니다. 섹션을 참조하세요 [1-n].imagemagick파일 이름을 입력하세요문서에서. 이 섹션에는 하늘색으로 강조된 예제와 구절이 포함되어 있습니다.

Linux 쉘은 일반적으로 괄호를 해석하므로 위의 파일 이름을 따옴표로 묶습니다. Windows 명령 셸에서는 괄호가 해석되지 않지만 따옴표를 사용해도 문제가 없습니다. 그러나 대부분의 경우 Linux와 Windows에서는 작은따옴표와 큰따옴표의 역할이 반대이므로 Windows 사용자는 일반적으로 작은따옴표를 표시할 때마다 큰따옴표를 사용해야 하며 그 반대의 경우도 마찬가지입니다.
magick 'images.gif[0-3]' images.mng

%d.jpg[1-256]셸에서 인용되지 않은 결과를 사용하면 결과가 %d.jpg1, 및 (읽기) 로 확장됩니다 %d.jpg2.%d.jpg5%d.jpg6답은 여기에 있습니다설명을 위해) 해당 파일 이름이 없으므로 오류가 발생합니다 no matches found.
확실한 해결책은 매뉴얼에 따라 표현식을 인용하여 쉘이 이를 그대로 명령에 전달하도록 하는 것입니다 magick.

magick '%d.jpg[1-256]' scan.pdf

쉘은 glob 한정자를 zsh통해 (n)glob을 수치적으로 정렬할 수 있으므로 다음도 작동해야 한다는 점을 언급할 가치가 있습니다.

magick ./*.jpg(n) scan.pdf

.jpg하지만 이렇게 하면 현재 디렉터리의 모든 파일이 처리됩니다 (숫자순으로 정렬). 특정 범위의 값으로 확장을 제한하려면 <m-n>일치하는 glob 연산자를 사용하십시오.어느m다음을 포함 하는 범위의 숫자 n:

magick <1-256>.jpg(n) scan.pdf

관련 정보