높이*너비 문제 일괄 조정

높이*너비 문제 일괄 조정

이 스크립트를 사용하여 디렉터리의 모든 이미지 크기를 조정하려고 합니다 bash.

for i in *.jpg; do
    printf "Resize $i\n"
    convert "$i" -resize 336x336 "$i"
done

하지만 크기 조정이 완료되면 336x252이 문제를 어떻게 해결합니까?

Linux 이미지 크기 조정 문제

답변1

ImageMagick convert유틸리티는 이미지 크기를 조정할 때 지정한 크기 제한을 초과하지 않고 이미지의 가로 세로 비율을 유지합니다.

48x36픽셀 크기(또는 480x360 또는 동일한 4:3 종횡비의 이미지)인 이미지가 있고 convert크기를 336x336픽셀로 조정하도록 요청하는 경우 길이와 너비는 그대로 유지하면서 336x252가 가장 큰 이미지입니다.

당신은 할 수 convert'336x336!'options 인수를 option 으로 사용하여 이미지의 종횡비를 무시합니다 -resize.

이는 ImageMagick 명령줄 문서의 관련 섹션에 문서화되어 있습니다.이미지 기하학.


루프에서 printf잘못된 방식으로 사용하고 있습니다.

대신 이렇게 하세요: printf 'Resizing %s\n' "$i"

printf첫 번째 매개변수는 다음과 같아야 합니다.언제나이는 정적 형식 템플릿이며 나머지 매개변수는 템플릿을 채우는 데 사용되는 데이터여야 합니다.

또한보십시오:ShellCheck 문제 코드 SC2059("printf 형식 문자열에 변수를 사용하지 마십시오").

관련 정보