웹사이트 검색

PNG를 JPG로 또는 그 반대로 일괄 변환하는 4가지 방법


컴퓨팅에서 일괄 처리는 프로그램의 일련의 작업을 비대화식으로 실행하는 것입니다. 이 가이드에서는 Linux 명령줄 도구를 사용하여 여러 .PNG 이미지를 .JPG로 또는 그 반대로 일괄 변환하는 4가지 간단한 방법을 제공합니다.

모든 예에서는 convert 명령줄 도구를 사용하지만 mogrify를 사용하여 이를 달성할 수도 있습니다.

convert 사용 구문은 다음과 같습니다.

convert input-option input-file output-option output-file

mogrify의 경우는 다음과 같습니다.

mogrify options input-file

참고: mogrify를 사용하면 원본 이미지 파일이 기본적으로 새 이미지 파일로 대체되지만 다음과 같은 방법으로 이를 방지할 수 있습니다. 매뉴얼 페이지에서 찾을 수 있는 특정 옵션을 사용합니다.

다음은 .JPG로 변환하려는 경우 모든 .PNG 이미지를 .JPG 형식으로 일괄 변환하는 다양한 방법입니다. .PNG를 사용하면 필요에 따라 명령을 수정할 수 있습니다.

1. 'ls' 및 'xargs' 명령을 사용하여 PNG를 JPG로 변환

ls 명령을 사용하면 모든 png 이미지를 나열할 수 있으며 xargs를 사용하면 표준 입력에서 convert 명령을 작성하고 실행하여 모든 이미지를 변환할 수 있습니다. .png 이미지를 .jpg로 변환합니다.

----------- Convert PNG to JPG ----------- 
ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"'

----------- Convert JPG to PNG ----------- 
ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'

위 명령어에 사용된 옵션에 대한 설명입니다.

  1. -1 – 플래그는 ls에 한 줄에 하나의 이미지를 나열하도록 지시합니다.
  2. -n – 최대 인수 수를 지정합니다. 해당 경우에는 1입니다.
  3. -c – bash에게 주어진 명령을 실행하도록 지시합니다.
  4. $ {0%.png}.jpg – 새로 변환된 이미지의 이름을 설정합니다. % 기호는 이전 파일 확장자를 제거하는 데 도움이 됩니다.

수정된 날짜와 시간별로 모든 파일을 나열하려면 ls -ltr 명령을 사용했습니다.

마찬가지로, 위 명령을 조정하면 모든 .jpg 이미지를 .png로 변환하는 데 위 명령을 사용할 수 있습니다.

2. GNU '병렬' 명령을 사용하여 PNG를 JPG로 변환

GNU 병렬을 사용하면 사용자가 표준 입력에서 셸 명령을 병렬로 작성하고 실행할 수 있습니다. 시스템에 GNU Parallel이 설치되어 있는지 확인하고, 그렇지 않은 경우 아래 적절한 명령을 사용하여 설치하십시오.

sudo apt-get install parallel     [On Debian/Ubuntu systems]
sudo yum install parallel         [On RHEL/CentOS and Fedora]

병렬 유틸리티가 설치되면 다음 명령을 실행하여 모든 .png 이미지를 표준 입력의 .jpg 형식으로 변환할 수 있습니다.

----------- Convert PNG to JPG ----------- 
parallel convert '{}' '{.}.jpg' ::: *.png

----------- Convert JPG to PNG -----------
parallel convert '{}' '{.}.png' ::: *.jpg

어디,

  1. {} – 입력 소스에서 읽은 전체 줄로 대체된 대체 문자열인 입력 줄입니다.
  2. {.} – 입력 줄에서 확장자를 뺀 값입니다.
  3. ::: – 입력 소스를 지정합니다. 즉, *png 또는 *jpg가 인수인 위 예의 명령줄입니다.

또는 ls 및 parallel 명령을 함께 사용하여 표시된 대로 모든 이미지를 일괄 변환할 수도 있습니다.

----------- Convert PNG to JPG ----------- 
ls -1 *.png | parallel convert '{}' '{.}.jpg'

----------- Convert JPG to PNG -----------
ls -1 *.jpg | parallel convert '{}' '{.}.png'

3. 'for loop' 명령을 사용하여 PNG를 JPG로 변환

셸 스크립트를 작성하는 번거로움을 피하려면 다음과 같이 명령줄에서 for 루프를 실행할 수 있습니다.

----------- Convert PNG to JPG ----------- 
bash -c 'for image in *.png; do convert "$image" "${image%.png}.jpg"; echo “image $image converted to ${image%.png}.jpg ”; done'

----------- Convert JPG to PNG -----------
bash -c 'for image in *.jpg; do convert "$image" "${image%.jpg}.png"; echo “image $image converted to ${image%.jpg}.png ”; done'

위 명령에 사용된 각 옵션에 대한 설명:

  1. -c를 사용하면 작은따옴표로 묶인 for 루프 문을 실행할 수 있습니다.
  2. image 변수는 디렉토리에 있는 이미지 수에 대한 카운터입니다.
  3. 각 변환 작업에 대해 echo 명령은 $image&로 변환된 줄에서 png 이미지가 jpg 형식으로 변환되었고 그 반대의 경우도 마찬가지임을 사용자에게 알립니다. #36 {image%.png}.jpg”.
  4. “$ {image%.png}.jpg”는 변환된 이미지의 이름을 생성하며, 여기서 %는 이전 이미지 형식의 확장자를 제거합니다.

4. 쉘 스크립트를 사용하여 PNG를 JPG로 변환

이전 예제처럼 명령줄을 지저분하게 만들고 싶지 않다면 다음과 같이 작은 스크립트를 작성하세요.

참고: 한 형식에서 변환하려면 아래 예와 같이 .png.jpg 확장자를 적절하게 교환하십시오. 다른 사람에게.

#!/bin/bash
#convert
for image in *.png; do
        convert  "$image"  "${image%.png}.jpg"
        echo “image $image converted to ${image%.png}.jpg ”
done
exit 0 

convert.sh로 저장하고 스크립트를 실행 가능하게 만든 다음 이미지가 있는 디렉터리 내에서 실행하세요.

chmod +x convert.sh
./convert.sh

요약하자면, .png 이미지를 .jpg 형식으로 또는 그 반대로 일괄 변환하는 몇 가지 중요한 방법을 다루었습니다. 이미지를 최적화하려면 Linux에서 png 및 jpg 이미지를 압축하는 방법을 보여주는 가이드를 참조하세요.

터미널에서 이미지를 한 형식에서 다른 형식으로 변환하기 위한 Linux 명령줄 도구를 포함한 다른 방법을 우리와 공유하거나 아래 댓글 섹션을 통해 질문할 수도 있습니다.