JPG가 아닌 모든 이미지를 JPG로 변환

JPG가 아닌 모든 이미지를 JPG로 변환

폴더에 있는 JPG(주로 PNG 및 BMP)가 아닌 모든 이미지를 JPG로 변환하려면 어떤 명령을 사용할 수 있나요? 또한 변환 품질이 100%가 되기를 바랍니다. 원본 이미지를 변환된 이미지로 바꾸고 싶습니다.

답변1

폴더에 이미지만 있다고 가정하면

ls | grep -v jpg$

로 끝나지 않는 모든 파일 이름을 얻으십시오 jpg. 변환하려는 모든 이미지가 이것이라고 가정합니다. 그런 다음 convert도구 를 사용할 수 있습니다이미지 마술사이와 같이

ls | grep -v jpg$ | while IFS= read -r FILENAME
do
    convert "${FILENAME}" "${FILENAME%.*}.jpg"
done

명령 convert은 .jpg 형식으로 변환하라는 convert <file name as printed by ls> <file name without extention>.jpg메시지 를 jpg표시합니다 .convert

답변2

현재 디렉터리의 모든 파일을 변환한 후 원본 파일을 삭제하려면 다음을 수행하세요 .png..bmp

mogrify -format jpg -quality 100 ./*.{png,bmp}
rm ./*.{png,bmp}

쉘이 확장된 와일드카드를 지원하는 경우 다음을 .jpg제외한 모든 파일을 변환하십시오 bash.

shopt extglob
mogrify -format jpg -quality 100 ./*.!(jpg)
rm ./*.!(jpg)

또는 zsh:

setopt extended_glob
mogrify -format jpg -quality 100 ./^*.jpg
rm ./^*.jpg

재귀:

find . -type f ! -name '*.jpg' -exec \
mogrify -format jpg -quality 100 {} + -exec rm {} +

답변3

XNView CLI 프로그램을 사용하여 추가 솔루션을 찾았습니다.전환하다.설치 튜토리얼입니다Linux용 nConvert.

다음 nConvert 명령은 모든 이미지 형식을 jpg로 변환하고 rm 명령은 모든 bmp 및 png 파일을 삭제합니다.

nconvert -out jpeg -o output-##.jpg *.* && rm ./*.{png,bmp}

관련 정보