터미널: 여러 JPG 파일의 이름을 HEIC 형식으로 바꾸고 조건을 제공합니다.

터미널: 여러 JPG 파일의 이름을 HEIC 형식으로 바꾸고 조건을 제공합니다.

아이폰으로 찍은 사진이 많이 들어있는 폴더가 있어요. 결과의 절반은 JPG이고 절반은 HEIC 형식이어야 합니다.

어떤 이유로든 이 폴더에 있는 모든 사진의 확장자는 JPG입니다. 다음을 확인하세요.https://i.stack.imgur.com/wHzT8.jpg

먼저, 위 이미지처럼 다른 JPG 파일들이 손상된 파일인 줄 알고 열려고 했더니 오류가 떴습니다. 그러다가 Apple Live Photos이기 때문에 JPG가 아닌 HEIC여야 한다는 것을 깨달았습니다. HEIC 형식으로 열리지 않은 여러 JPG 파일의 이름을 수동으로 바꾸면 라이브 사진이기 때문에 짧은 비디오로 올바르게 열렸습니다.

내 질문은 다음과 같습니다열 수 없는 가짜 JPG 파일을 모두 찾아 이름을 .JPG에서 .HEIC로 바꿀 수 있는 방법이 있나요? 다른 사진은 라이브 사진이 아니기 때문에 모든 JPG의 이름을 HEIC로 바꿀 수 없습니다.

답변1

JPG 파일은 열 수 있지만 HEIC는 열 수 없는 명령줄 프로그램이 있는 경우 프로그램을 실행하고 종료 코드를 사용하여 파일이 유효한 JPG인지 확인할 수 있습니다.

convertimagemagick 프로그램을 사용해 볼 수 있습니다 .

테스트되지 않은 예:

for jpg in *.jpg
do
    heic="${jpg%.jpg}.heic"    # construct HEIC file name
    tmp="$jpg.png"             # temporary PNG file
    if ! convert "$jpg" "$tmp" # try to convert
    then
        mv "$jpg" "$heic"      # rename if conversion failed
    fi
    rm -f "$tmp"               # PNG no longer needed
done

convert물론 프로그램이 HEIC 파일을 입력으로 허용하는 경우에는 작동하지 않습니다.

샘플 코드는 다음에서 영감을 얻었습니다.https://github.com/williamthing/Scripts/blob/master/Shell/jpg2png.sh

관련 정보