咱們平時使用Photoshop 切出的圖片,都含有一些不須要的信息或者多餘的顏色值,這些信息和顏色值,對網頁顯示並無用處,反而增長圖片大小,Google Pagespeed 建議咱們對於JPEG文件,使用jpegtran或jpegoptim(僅適用於Linux;使用--strip-all選項運行)。對於PNG文件,使用OptiPNG或PNGOUT。減少圖片大小,就能夠減小用戶下載的文件大小,加快頁面訪問速度。javascript
對於不一樣格式的圖片,咱們須要用pegtran/jpegoptim/OptiPNG/PNGOUT 的工具,這樣對於前端開發費時費力,grunt-contrib-imagemin封裝了這些壓縮功能;大大方便了咱們優化的工做.前端
安裝 :npm install grunt-contrib-imagemin --save-devjava
配置 :詳細見https://github.com/gruntjs/grunt-contrib-imageminnode
代碼例子:git
module.exports = function (grunt) { 'use strict'; grunt.initConfig({ imagemin: { /* 壓縮圖片大小 */ dist: { options: { optimizationLevel: 3 //定義 PNG 圖片優化水平 }, files: [{ expand: true, cwd: 'imgs/', src: ['**/*.{png,jpg,jpeg,gif}'], // 優化 img 目錄下全部 png/jpg/jpeg/gif圖片 dest: 'imgs/' // 優化後的圖片保存位置,覆蓋舊圖片,而且不做提示 }] } }, }); grunt.loadNpmTasks('grunt-contrib-imagemin'); grunt.registerTask('img', ['imagemin']); };
存在的問題:github
一、0.9.2版本,在win7系統32位,64位有問題,沒法壓縮jpg,運行的時候報錯.npm
能夠在https://github.com/imagemin/jpegtran-bin/releases下載文件後獲取裏面的瀏覽器
jpegtran-bin-2.0.2->jpegtran-bin-2.02->vendor-win-x64裏的兩個文件:grunt
jpegtran.exe libjpeg-62.dll,覆蓋到node_modules\grunt-contrib-imagemin\node_modules\imagemin\node_modules\imagemin-jpegtran\node_modules\jpegtran-bin\vendor\下便可工具
二、壓縮後的png圖片,半透明的效果在IE6下顯示有問題,壓縮前正常,壓縮後圖片消失不可見,其餘瀏覽器正常。緣由不詳。0.9.2出現,在最新版本未測試過。
三、最新版本貌似0.9.4沒這個問題,可是默認壓縮後的大小卻相差不少,具體緣由不詳。