몽타주 명령을 사용하여 텍스트 파일의 이미지에 레이블 지정

몽타주 명령을 사용하여 텍스트 파일의 이미지에 레이블 지정

이 명령을 사용하여 각 이미지에 이름을 붙일 수 있습니다.

montage -label '%t' -size 512x512 "./img/*.*[120x90]" -geometry +5+5 photo.png

텍스트 파일에 기록된 문자열 목록으로 이미지에 라벨을 지정하고 싶습니다.문서에서는 말한다:

문자열의 첫 번째 문자가 @이면 문자열의 나머지 문자로 제목이 지정된 파일에서 이미지 레이블을 읽습니다. 파일의 레이블은 리터럴이며 포함된 서식 문자가 인식되지 않습니다.

하지만 라벨을 제공하기 위해 파일을 사용할 수 없었습니다. 나는 다음과 같은 명령을 사용합니다.

montage -label @un.txt -size 512x512 "./img/*.*[120x90]" -geometry +5+5 photo.png 

위는 path un.txt에 있는 텍스트 파일의 이름입니다 . ./img/다음은 샘플 결과입니다.

각 이미지 아래에 파일 이름이 @un.txt인 4x4 이미지 그룹

결과적으로 모든 이미지에는 @un.txt내용 대신 문자열로 라벨이 지정됩니다 un.txt. 또한 다음에서 이 오류가 발생합니다 terminal.

montage.im6: improper image header `./img/un.txt' @
error/txt.c/ReadTXTImage/429

만약 내가복사 un.txt현재( .) 디렉터리로 이동하여 위 명령을 다시 실행하면 이 이미지(레이블 없음)와 아래 오류가 표시됩니다.

이전과 같은 4x4 이미지 그룹, 텍스트 없음

montage.im6: improper image header `./img/un.txt' @
error/txt.c/ReadTXTImage/429. 

montage.im6: not authorized `@un.txt' @
error/property.c/InterpretImageProperties/2959.

답변1

주의를 기울여이 답변, 아마도 ImageMagick에서 발견된 취약점과 관련이 있는 것으로 나타났습니다(여기)이므로 <policy domain="path" rights="none" pattern="@*" />에서 줄을 제거하여 사이트 정책 파일을 업데이트했습니다 /etc/ImageMagick/policy.xml. 이제 montage파일에서 읽습니다.

관련 정보