Grunt中批量无损压缩图片插件--grunt-sprite

这是什么

这是一个帮助前端开发工程师将css代码中的切片合并成雪碧图的工具,它的主要功能是:

  1. 使用二叉树排列算法,对css文件进行处理,收集切片序列,生成雪碧图
  2. 在原css代码中为切片添加background-position属性
  3. 生成用于高清设备的高清雪碧图,并在css文件末尾追加媒体查询代码
  4. 在引用雪碧图的位置打上时间戳
  5. 在样式末尾追加时间戳

安装依赖

grunt-sprite 使用 spritesmith 作为内部核心算法,根据官方文档中提到的基本依赖,须要安装Graphics Magick(gm) 和 PhantomJS 两个依赖。

  • Graphics Magick(gm)

    GraphicsMagick 为 grunt-sprite 提供用于图像处理的框架,安装方法:

  • PhantomJS

    PhantomJS 为 spritesmith 提供 CSS选择器 与 JSON 的支持,安装方法:

配置说明

// 自动雪碧图
  sprite: {
      allslice: {
          files: [
              {
                  //启用动态扩展
                  expand: true,
                  // css文件源的文件夹
                  cwd: ‘css‘,
                  // 匹配规则
                  src: [‘*.css‘],
                  //导出css和sprite的路径地址
                  dest: ‘tmp/‘,
                  // 导出的css名
                  ext: ‘.sprite.css‘
              }
          ],
          options: {
                        // 默认使用GM图像处理引擎
                        ‘engine‘: ‘gm‘,
                        // 默认使用二叉树最优排列算法
                        ‘algorithm‘: ‘binary-tree‘,
                        // 给雪碧图追加时间戳,默认不追加
                        ‘imagestamp‘:false,
                        // 给样式文件追加时间戳,默认不追加
                        ‘cssstamp‘:true,
                        // 是否以时间戳为文件名生成新的雪碧图文件,默认不生成新文件
                        ‘newsprite‘:true

                    }
      }
  }
  • files

    使用标准的动态文件对象

    dest 指定一个输出的目录,将会在这个目录下创建一个css/和一个sprite/目录。

  • options

    • engine

      必选项,指定图像处理引擎,选择gm

    • algorithm

      必选项,指定排列方式,有top-down (从上至下), left-right(从左至右), diagonal(从左上至右下), alt-diagonal (从左下至右上)和 binary-tree(二叉树排列) 五种供选择。

    • imagestamp

      可选项,是否要给雪碧图追加时间戳,默认不追加

    • cssstamp

      可选项,是否给样式文件追加时间戳,默认不追加

    • ‘newsprite‘

      可选项,是否以时间戳为文件名生成新的雪碧图文件,默认不生成新文件

载入插件

请不要忘了载入插件

grunt.loadNpmTasks(‘grunt-sprite‘);

打个比方

有一个类似这样的目录结构:

    ├── test
        ├── css/
            └── icon.css
        ├── slice/
                ├── icon-a.png
                ├── [email protected]
                ├── icon-b.png
                └── [email protected]
        └── publish
            ├── css/
                └── icon.sprite.css
            └── sprite/
                ├── icon.png
                └── [email protected]

css/icon.css 调用slice/目录下的切片,grunt-sprite 会将 css/icon.css 进行处理。

publish/ 目录下生成 css/ 和 sprite/ 两个目录,css/ 目录下是处理完成的样式 icon.sprite.css ,而sprite/ 目录下是合并完成的雪碧图 icon.png

特别注意

  1. css文件置于css/文件夹中,切片文件置于slice/文件夹中,且 css/slice/ 处于同级。
  2. css/ 和 slice/ 目录不一定要处于项目根目录
  3. 理论上所有的切片都应该是.png格式,png8 png24 和 png32不限
  4. 理论上高清切片都应该是源切片尺寸的2倍,所以所有高清切片的尺寸宽和高都必须是偶数
  5. 生成后的雪碧图将以源css文件名来命名
时间: 2024-08-24 21:02:51

Grunt中批量无损压缩图片插件--grunt-sprite的相关文章

Grunt中批量无损压缩图片插件--Grunt-contrib-imagemin

Photoshop 切出的图片,无论是 PNG 还是 JPEG/JPG 格式,都含有许多相关信息,又或多余的颜色值,这些信息和颜色值,对网页前端并没有用处,反而增加图片大小,所以 Google Pagespeed 最佳实践建议我们用 jpegtran 或 jpegoptim (仅限 Linux 平台) 对 jpeg/jpg 图片进行无损压缩,如果是 PNG 格式,则使用 OptiPNG 或 PNGOUT 压缩.减小图片大小,就可以减少用户下载的文件大小,加快页面访问速度. 不过上面提到的几个工具

word中批量修改图片大小的两个方法

1.只需要图片符合文档大小即可 插入图片,word自动处理图片大小. 按插入 按图片 效果: 2.需要图片具体的大小 把图片复制,直接在word中粘贴,图片以原始大小显示 按视图 按宏,查看宏,输入setpicsize,按创建 复制并粘贴以下程序 并按调试+编译,看看程序有没有错误 Sub setpicsize()    Dim n '图片个数    Dim Height, Weight    Height = 300    Weight = 200    On Error Resume Nex

[Word]中批量修改图片大小和缩放比例方法

最近小编遇到一个问题:需要将一篇word文档中的所有图片全部缩小比例.一张张改太麻烦了.于是从网上搜罗了一下,还真找到了解决办法.需要注意的地方就是注意厘米与像素的换算关系.一般情况下1厘米=28px .这个换算关系其实可以用计算器计算出来.计算公式为图片改变之后的像素除以改变之后图片的大小厘米.

在world中批量调整图片的大小

1.Alt+F8调出vb宏  创建一个宏名字,setsize 粘贴代码后保存关闭. Sub setsize() ' ' setsize 宏 ' ' Dim iSha As InlineShape For Each iSha In ActiveDocument.InlineShapes If iSha.Type = wdInlineShapePicture Then iSha.LockAspectRatio = msoFalse '不锁定纵横比 iSha.Width = CentimetersTo

使用grunt来无损压缩图片

作为一个前端工程师,或者web开发工程师,图片是你无法忽视的一个东西,没有一本优化方面的书不会提及图片的优化. pagespeed里面,首当其冲的也是提示你的图片需要优化. 之前有做过很多尝试,处理png图片等,可以查看以前的博客:优化png图片的历程 但是之前的方法有两个问题: 1.主要是优化PNG图片 2.效率低下,不适合批量操作 为了解决上诉问题,现在使用一个新的方法去批量压缩图片. 这个方法就是,噔噔噔噔,Grunt-contrib-imagemin 操作步骤如下: 1.首先你得有nod

Aps.net中基于bootstrapt图片上传插件的应用

Aps.net中基于bootstrapt图片上传插件的应用 在最近的项目中需要使用一个图片上传的功能,而且是多张图片同时上传到服务器的文件夹中,将图片路径存放在数据库中.为了外观好看使用了bootstrapt插件.插件下载地址:   http://www.jq22.com/jquery-info5231 index.html中的代码: <script> //初始化函数 $("#file-1").fileinput({ uploadUrl: 'image/Handler.as

Linux中如何使用gThumb批量调整图片大小

Linux中如何使用gThumb批量调整图片大小 导读 如果你的工作涉及到图片编辑和处理,就一定会有同时对多张图片进行批量大小调整的经历.虽然大多数图片编辑应用都能够非常容易地批量调整多张图片,但对于新手用户来说,总是不太容易轻松找到并使用相关功能,因此本文将向大家介绍如何在 Linux 桌面系统中使用 gThumb 软件来批量调整图片大小. 由于主要步骤都以 gThumb 为中心,所以请先确保你在系统中已经安装了该应用.如果没有,可以自行在 Ubuntu Software Center 中搜索

grunt中遇到一个一直运行一个任务的问题

grunt.registerTask(alias,tasklist) 这里的alias 的名字不能用和tasklist中任何一个名字一样 否则会一直运行这个任务 巨坑啊!!! 例如:grunt.registerTask('uglify', ['uglify'])改为grunt.registerTask('uglify1', ['uglify']);

CAD编辑器中怎么将CAD图纸批量转图片

设计师们日常的工作中就是编辑图纸,但是CAD图纸绘制完成后,一般都是需要给客户或者老板进行查看的,但是CAD图纸都是dwg格式的,那为了查看方便,就需要将CAD图纸转换成图片.拿在CAD编辑器中怎么将CAD图纸批量转图片?下面小编就来教教大家,希望能够帮助到你们. 第一步:首先,打开电脑,在电脑中任意的打开一个浏览器,在搜索框中搜索迅捷CAD编辑器,接着点击进入官网,点击下载安装最新版本的CAD编辑器. 第二步:安装完成之后,将该软件进行启动进入到使用界面中,之后在点击上方菜单栏中的"VIP功能