Сжатие изображений с помощью imagemin-contrib (Grunt)
Я хотел проверить imagemin-contrib
в Grunt.js
, Я выбрал три jpg
случайные изображения (размеры: 44 КБ, 92 КБ, 77 КБ соответственно) и настройте папку и плагин.
Когда я побежал imagemin
В ответ на грубое задание я получил сообщение о том, что фотографии были успешно оптимизированы, но цифры показали уменьшение размера первых 5 фотографий только на 5 или 10 КБ, а третье не изменилось.
Мне было интересно, было ли это нормально для "оптимизированного изображения"? Я ожидал более резкого падения в размерах. Может быть, выбранные мной изображения просто уже оптимизированы? Или это может быть из-за того, как я написал команду ворчания?
Ниже приведен код, который я использовал для выполнения команды grunt:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
//Image Min Plugin
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'photos/',
src: ['**/*.{png,jpg,gif}'],
dest: 'photos/optim/'
}]
}
}
});
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.registerTask('default', ['imagemin']);
};
1 ответ
Основная информация
Ну, это абсолютно зависит от исходного состояния этих изображений. Если они уже были сжаты (например, при экспорте с фотошопом), они могут сжиматься дальше без потери качества. Так что вполне возможно, что вы не получите много пользы от оптимизации. Если это несжатые изображения, однако grunt-contrib-imagemin
может сильно помочь
Плагин отлично справляется со своими задачами, но, очевидно, он не сжимает изображения в случае потери качества. Также он не знает, можно ли изменить размер изображения (что часто является очень хорошим сжатием). Если вы ищете наилучшее сжатие, вы можете запустить понимание скорости страниц ( https://developers.google.com/speed/pagespeed/insights/), которое сообщит вам, можете ли вы в дальнейшем сжимать изображение без потерь и можно ли оптимизировать изображения с помощью загружать их в другом разрешении. Если вы хотите / нуждаетесь в большем сжатии, рассмотрите сжатие с потерями, которое может сэкономить много килобайт с небольшой потерей качества.
Опция OptimizationLevel:
Даже если это не повлияет на размер сжатия, optimizationLevel
опция, которая может быть установлена на уровне от 0 до 7. Она включает набор операций оптимизации и по умолчанию установлена на 3. Чем выше вы устанавливаете уровень, тем дороже становится вычислительная операция (в любом случае это не имеет значения). Таким образом, вы можете установить его на 7 и посмотреть, как это повлияет на сжатие:
imagemin: {
options: {
optimizationLevel: 7
}
dynamic: {
files: [{
expand: true,
cwd: 'photos/',
src: ['**/*.{png,jpg,gif}'],
dest: 'photos/optim/'
}]
}
}
Уровень оптимизации 0 обеспечивает набор операций оптимизации, которые требуют минимальных усилий. Не будет никаких изменений в атрибутах изображения, таких как битовая глубина или тип цвета, и не будет повторного сжатия существующих потоков данных IDAT. Уровень оптимизации 1 позволяет использовать одну пробную версию IDAT. Выбранное испытание - это то, что OptiPNG считает наиболее эффективным. Уровни оптимизации 2 и выше разрешают множественные испытания сжатия IDAT; чем выше уровень, тем больше испытаний.