하위 폴더를 포함하여 폴더의 모든 이미지를 일괄 크기 조정하는 방법은 무엇입니까?


11

서버에 12GB의 거대한 갤러리가 있으며 다양한 하위 폴더에 이미지가 가득합니다. 해당 파일이 너무 커서 전체 해상도로 사용되지 않습니다. 모든 이미지의 크기를 820px로 유지해야합니다 (비율 유지). 그래서 내 질문은-820px보다 큰 모든 이미지의 크기를 조정하고 원본 파일을 덮어 쓰는 다시 저장하는 일종의 크롤링 스크립트를 어떻게 만들 수 있습니까?

당신이 나를 도울 수 있기를 바랍니다 :-) 미리 감사합니다.


3
find . -name "*.jpg" -exec mogrify -resize 820x {} +그들 모두를 할 것입니다; "820px 미만"을 처리하지 않으려면 여기에 몇 가지 옵션이 있습니다 .
don_crissti

답변:


13

ImageMagick 도구는 변환 또는 mogrify가 작업을 수행합니다.

패키지 관리자 또는 소스 / rpms를 통해 얻을 수 있습니다 : http://www.imagemagick.org/script/binary-releases.php#unix

기본 사용법 :

$ mogrify -resize 820x *.jpg

재귀가 필요한 경우 :

find . -name '*.jpg' -execdir mogrify -resize 820x {} \;

"820px 너비 (비율 유지)"는 "820x820으로 크기 조정"을 의미한다고 생각하지 않습니다. 그것은 "820px 너비와 그 비율이 높음"과 비슷합니다.;) 또한 재귀를 처리하지 않습니다.
Erathiel

1
좋은 지적. 편집했습니다!

설정된 치수보다 큰 경우에만 크기를 조정하고 비율을 유지하려면 크기를 다음과 같이 변경할 수 있습니다. find . -name '*.jpg' -execdir mogrify -resize '820x620>' {} \;
OpensaurusRex

2
주의 : 기존 이미지를 덮어 씁니다.
sudo


5

convert작업을 수행하는 데 사용하십시오 .

convert -resize "1024x768>" origIMG destIMG가로 세로 비율을 유지하고 이미지가 1024보다 큰 경우에만 크기를 조정하여 새 이미지를 destIMG에 저장합니다. 그런 다음 destIMG를 원본으로 옮길 수 있습니다.

루프를 사용하여 모든 디렉토리를 이동하거나 사용하십시오 find.


find?로 되풀이하면서 축소 된 이미지로 원본 이미지를 덮어 쓰려면이 명령을 어떻게 수정 하시겠습니까?
Simon East
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.