2014-10-25 8 views
1

약 100 개의 .png 이미지가 있으며 모두 이미지를 .webp (Google의 이미지 형식)로 변환해야합니다. Google의 CLI 도구를 사용하고 있습니다. 일괄 처리 방법에 대한 아이디어.일괄 처리 .png to .webp

+1

사용'... -exec' – Barmar

답변

11

간단한 bash 스크립트를 사용하여이를 수행 할 수 있습니다.

이동 이미지가 거주하고이를 실행 디렉토리로 : 당신이 원하는대로

당신은, 출력 파일 이름을 변경할 수 있습니다. 하지만 확장자로 끝나야합니다.

+0

왜 반대 투표를 찾기? – InfinitePrime

+0

어디에서이 스크립트를 작성할 수 있습니까? –

+2

@InfinitePrime, 방금 귀하의 답을 약간 수정했습니다. cwebp args에 따옴표를 추가했습니다 (입력 파일 이름에 공백이 있으면 코드가 깨지지 않습니다). –

14

GNU Parallel을 많이 사용해야한다면 일년 내내 사용할 수 있습니다!

먼저 예비 임시 디렉토리에 몇 개의 파일을 복사하고 10 만 개 이미지를 사용하기 전에 당신이 원하는 것을 확인하기 위해이가 시도하십시오 : 시작하고, 계속 실행됩니다

parallel -eta cwebp {} -o {.}webp ::: *.png 

많은 프로세스는 CPU 코어를 가지고 있으며 각각은 cwebp입니다. 처리 된 파일은 현재 디렉토리의 모든 파일 PNG입니다.

명령 줄이 너무 길어질 경우

, 당신은이 같은 find을 사용하여 파일 목록을 전달할 수 있습니다

find . -name "*.png" | parallel -eta cwebp {} -o {.}.webp 
+1

평행선을 잘 사용합니다. 하지만 당신은 그 점을 놓쳤습니다! 그것은 {.}이어야합니다. webp – iNFINITEi

+0

@iNFINITEi 잘 찾아 냈습니다 - 고마워요. 나는 그것을 지금 고쳤다 고 믿습니다. 그러나 당신이 다른 것을 안다면 말하십시오! –

+0

@ MarkSetchell 점이 무엇을 설명 할 수 있습니까? 내 명령'find JPEG/-iname "* .jpeg"-print -exec cwebp -jpeg_like -af {} -o Webp/{}. webp \;는 도트 (우분투)없이 작동합니다. 미리 감사드립니다. 인터넷 검색이 도움이되지 않았습니다. 추신 점은'{.} .wepp'의 첫 번째 점을 가리 킵니다. – saurabheights