Что касается качества, это сложный вызов, поскольку оно зависит от изображений, которые вы не показываете. И если вы собираетесь уменьшить размер в 20 раз, вы должны ожидать некоторой потери качества. Итак, оставляю вас для оценки качества. Что касается обработки ...
Вы можете сделать и то, и другое одновременно с помощью ImageMagick, который установлен в большинстве дистрибутивов Linux и доступен для macOS и Windows.
Убедитесь, что размер входного изображения составляет 6 МБ:
ls -lrht input.jpg
-rw-r--r-- 1 mark staff 6.0M 2 Dec 16:09 input.jpg
Убедитесь, что входное изображение не чересстрочно:
identify -verbose input.jpg | grep -i interlace
Interlace: None
Преобразование в JPEG с прогрессивной / чересстрочной разверткой и размером 300 КБ:
convert input.jpg -interlace plane -define jpeg:extent=300KB result.jpg
Размер чека теперь меньше 300 КБ:
ls -lhrt result.jpg
-rw-r--r--@ 1 mark staff 264K 2 Dec 16:11 result.jpg
Проверить сейчас чересстрочный:
identify -verbose result.jpg | grep -i interlace
Interlace: JPEG
Вы также можете использовать jpegtran
, который легче, чем ImageMagick:
jpegtran -copy none -progressive input.jpg output.jpg
person
Mark Setchell
schedule
02.12.2017