2014-10-25 3 views
1

У меня есть около 100 изображений .png, и все они должны быть преобразованы в .webp (формат изображения Google). Я использую инструмент CLI Google. Любая идея, как их обрабатывать.Пакетный процесс .png для .webp

+1

Используйте 'найти ... -exec' – Barmar

ответ

11

Вы можете сделать это с помощью простого сценария bash.

Перейдите в каталог, где ваши изображения проживают и выполнить это:

Вы можете изменить имя выходного файла, как вы хотите. Но должен заканчиваться расширением .webp.

+0

Почему отрицательный голос? – InfinitePrime

+0

Где я могу написать этот скрипт? –

+2

@InfinitePrime, я просто сделал небольшое изменение для вашего ответа. добавлены кавычки в cwebp args (поэтому ваш код не прерывается, если в именах входных файлов есть пробелы) –

14

Вам нужно использовать GNU Parallel, если у вас их много, или вы будете там весь год!

Пожалуйста, скопируйте несколько файлов в запасной временный каталог первой и попробовать это там, чтобы убедиться, что он делает то, что вы хотите, прежде чем использовать его на 100000 изображений:

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

Это начнется, и продолжать работать, как и многие процессы, так как у вас есть ядра процессора, каждый из которых делает cwebp. Обработанными файлами будут все файлы PNG в текущем каталоге.

Если командная строка становится слишком длинным, вы можете передать список файлов при помощи find так:

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

Nice использования параллельных. Но вы пропустили точку! Это должно быть {.}. Webp – iNFINITEi

+0

@iNFINITEi Хорошо заметили - спасибо. Я верю, что исправил его сейчас, но, пожалуйста, скажите, знаете ли вы разные! –

+0

@MarkSetchell Можете ли вы объяснить, что делает точка? Моя команда 'find JPEG/-iname * * .jpeg" -print -exec cwebp -jpeg_like -af {} -o Webp/{}. Webp \; 'работает без точки (Ubuntu). Заранее спасибо. Гуглинг не помог. Постскриптум точка указывает на первую точку в '{.}. webp' – saurabheights

Смежные вопросы