imagemagick을 사용하여 한 디렉토리의 모든 이미지, jpg를 다른 디렉토리로 축소하는 방법

imagemagick을 사용하여 한 디렉토리의 모든 이미지, jpg를 다른 디렉토리로 축소하는 방법

나는 읽었다mogrify(imagemagick)를 사용하여 내 모든 파일(매개변수 포함)을 일괄 변환합니다.내 디렉터리의 모든 이미지가 동일한 너비와 높이를 갖는다는 점을 제외하면 내 쿼리/경로가 매우 유사한 것 같습니다.

[$] mediainfo 20160714_161847.jpg                                                                                               
General
Complete name                            : 20160714_161847.jpg
Format                                   : JPEG
File size                                : 2.66 MiB

Image
Format                                   : JPEG
Width                                    : 4 128 pixels
Height                                   : 2 322 pixels
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Compression mode                         : Lossy
Stream size                              : 2.66 MiB (100%)

이제 원본/부모 이미지가 건드리지 않도록 다른 디렉터리로 일괄 압축하고 싶습니다. 모든 압축은 기본적으로 이미지에서 정보를 가져오고 일부 아티팩트가 생성된다는 것을 알고 있습니다.

보다 구체적으로, 디렉토리 수는 다음과 같다고 가정합니다.

/home/shirish/input_directory/*.jpg - input_directory에는 웹 게시에 사용할 수 있도록 축소/삭제해야 하는 모든 .jpg가 포함되어 있습니다.

/home/shirish/output_directory/ - 처리된 이미지가 끝나는 곳입니다. 원본 이미지는 전혀 건드리지 말고 그대로 두시면 됩니다.

ASCII 막대를 사용하거나 바람직하게는 콘솔/ASCII 막대뿐만 아니라 완료할 이미지 수를 알려주는 등 이미지를 탐색하는 동안 작업 진행 상황을 볼 수 있는 방법이 있다면 좋을 것입니다.

흥미롭게도 예제 이미지에는 GPS 정보가 없는 것 같지만 컬렉션의 일부 이미지에는 해당 정보가 있을 것으로 확신합니다. 이미지에 위치 인식 정보(GPS 좌표) 또는 이와 유사한 정보가 있는지 확인하기 위해 모든 이미지를 검색/탐색하는 방법도 있습니다.

업데이트 - 작동 방식을 공유합니다. - 참조 -

 ~/Pictures/original$ mogrify -path /home/shirish/Pictures/reduced -monitor -quality 70 -trim -resize '>'600x480 *.jpg

    load image[asus-prime-Z270-p-lga1151-motherboard.jpg]: 1215 of 1216, 100% complete

    Resize/Image//home/shirish/Pictures/reduced[asus-prime-Z270-p-lga1151-motherboard.jpg]: 1052 of 1053, 100% complete

    Save/Image//home/shirish/Pictures/reduced[asus-prime-Z270-p-lga1151-motherboard.jpg]: 479 of 480, 100% complete

내가 모르는 유일한 것은 imagemagick이 숫자를 어디에서 가져오는가입니다. 하지만 그건 또 다른 날이고 완전히 다른 질문입니다. :)

답변1

이것은 너비 600 및 높이 400(그보다 큰 경우)으로 크기를 조정하고 jpeg 품질을 70으로 설정하는 명령의 최소 버전입니다(백분율: 숫자가 낮을수록 바이트 수는 적지만 품질은 더 나쁨). .

cd /home/shirish/input_directory/
mogrify -path /home/shirish/output_directory/ -monitor   -quality 70  -trim  -resize '>'600x400 *.jpg

파일이 너무 많으면 다음을 사용하는 것이 좋습니다.find|xargs

관련 정보