폴더에 있는 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}