Grunt中批量无损压缩图片插件--grunt-sprite
这是什么
这是一个帮助前端开发工程师将css代码中的切片合并成雪碧图的工具,它的主要功能是:
- 使用二叉树排列算法,对css文件进行处理,收集切片序列,生成雪碧图
- 在原css代码中为切片添加background-position属性
- 生成用于高清设备的高清雪碧图,并在css文件末尾追加媒体查询代码
- 在引用雪碧图的位置打上时间戳
- 在样式末尾追加时间戳
安装依赖
grunt-sprite 使用 spritesmith 作为内部核心算法,根据官方文档中提到的基本依赖,须要安装Graphics Magick(gm) 和 PhantomJS 两个依赖。
Graphics Magick(gm)
GraphicsMagick为grunt-sprite提供用于图像处理的框架,安装方法:Mac
// 安装GM图形库
brew install GraphicsMagick
Windows
前往官方网站下载安装GM图形库
PhantomJS
PhantomJS为spritesmith提供 CSS选择器 与 JSON 的支持,安装方法:Mac
// 安装 Phantomjs
brew install phantomjs
Windows
前往官方网站下载安装Phantomjs
配置说明
// 自动雪碧图
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
├── icon-a@2x.png
├── icon-b.png
└── icon-b@2x.png
└── publish
├── css/
└── icon.sprite.css
└── sprite/
├── icon.png
└── icon@2x.png
css/icon.css 调用slice/目录下的切片,grunt-sprite 会将 css/icon.css 进行处理。
在publish/ 目录下生成 css/ 和 sprite/ 两个目录,css/ 目录下是处理完成的样式 icon.sprite.css ,而sprite/ 目录下是合并完成的雪碧图 icon.png。
特别注意
- css文件置于
css/文件夹中,切片文件置于slice/文件夹中,且css/和slice/处于同级。 css/和slice/目录不一定要处于项目根目录- 理论上所有的切片都应该是
.png格式,png8png24和png32不限 - 理论上高清切片都应该是源切片尺寸的2倍,所以所有高清切片的尺寸宽和高都必须是偶数
- 生成后的雪碧图将以源css文件名来命名
Grunt中批量无损压缩图片插件--grunt-sprite的更多相关文章
- Grunt中批量无损压缩图片插件--Grunt-contrib-imagemin
Photoshop 切出的图片,无论是 PNG 还是 JPEG/JPG 格式,都含有许多相关信息,又或多余的颜色值,这些信息和颜色值,对网页前端并没有用处,反而增加图片大小,所以 Google Pag ...
- word中批量修改图片大小的两个方法
前言: 对于把ppt的内容拷贝到word中: 对ppt的一页进行复制,然后粘贴到word中 如果要的是ppt运行过程中的内容,在qq运行的情况下,按Ctrl+Alt+A截屏,按勾,然后可以直接粘贴到w ...
- [Word]中批量修改图片大小和缩放比例方法
最近小编遇到一个问题:需要将一篇厘米.打开.宏名起好了,单击"创建"进入.返回word,工具-宏-宏(或者直接按Alt+F8),再次进入宏的界面,选择刚才编辑好的宏,并单击&quo ...
- word中批量修改图片大小
一,在word中按alt+f11组合键,进入VBA模式二,在左边的工程资源管理器中找到你的word文档,在其上右键/添加/模块三,把下面代码复制,粘贴进去.四,更改数值, 改一下宽度和高度数值(10) ...
- 在world中批量调整图片的大小
1.Alt+F8调出vb宏 创建一个宏名字,setsize 粘贴代码后保存关闭. Sub setsize() ' ' setsize 宏 ' ' Dim iSha As InlineShape Fo ...
- grunt中常见的插件
/** * 需要用到的文件夹有 js(src) css image html */ gulp是一种自动化构建工具,可以增强我们的工作流程,他是基于 Node.js 构建的,与gruntjs相比,gul ...
- PHP 多图上传,图片批量上传插件,webuploader.js,百度文件上传插件
PHP 多图上传,图片批量上传插件,webuploader.js,百度文件上传插件(案例教程) WebUploader作用:http://fex.baidu.com/webuploader/gett ...
- Linux中如何使用gThumb批量调整图片大小
Linux中如何使用gThumb批量调整图片大小 导读 如果你的工作涉及到图片编辑和处理,就一定会有同时对多张图片进行批量大小调整的经历.虽然大多数图片编辑应用都能够非常容易地批量调整多张图片,但对于 ...
- Aps.net中基于bootstrapt图片上传插件的应用
Aps.net中基于bootstrapt图片上传插件的应用 在最近的项目中需要使用一个图片上传的功能,而且是多张图片同时上传到服务器的文件夹中,将图片路径存放在数据库中.为了外观好看使用了bootst ...
随机推荐
- LinkedList封装
LinkedList简单的封装 package com.cn.test.jihe.LinkedList; import java.util.NoSuchElementException; public ...
- 简单测试Java线程安全中阻塞同步与非阻塞同步性能
摘抄自周志明老师的<深入理解Java虚拟机:JVM高级特性与最佳实践>13.2.2 线程安全的实现方法 1.名词解释 同步是指锁哥线程并发访问共享数据时,保证共享数据同一时刻只被一个线程访 ...
- 使用模块化工具打包自己开发的JS库(webpack/rollup)对比总结
打包JS库demo项目地址:https://github.com/BothEyes1993/bes-jstools 背景 最近有个需求,需要为小程序写一个SDK,监控小程序的后台接口调用和页面报错(类 ...
- python logging的应用
#-*-coding:utf-8-*-#util import logging import logging from logging.handlers import RotatingFileHand ...
- ubuntu 16.10安装nginx
1 : cd /usr/local 2 : sudo wget http://nginx.org/download/nginx-1.2.8.tar.gz 3 : sudo tar -zxvf ngin ...
- MySQL数据库(2)----检索信息
SELECT 语句的简化语法如下: SELECT what to retrive FROM table or tables WHERE conditions that data must satisf ...
- Jmeter CSV 参数化/检查点/断言
当参数的值没有规律且量不太大时,可以使用CSV Data set config这种方法. 案例: 应用Sogou自动搜索关键字: 软件开发测试,web功能自动化测试,性能自动化测试,Selenium以 ...
- react-native-splash-screen
react-native-splash-screen在GitHub上的地址:https://github.com/crazycodeboy/react-native-splash-screen rea ...
- 代码分析工具推荐Understand
之前看ogitor ,第一次看到那么多代码~~不知道从哪里下手,而且好多东西都不会Ogre什么的都不是很清楚,对ogitor的代码结构的了解就更不用提了.晕头转向的 不知道从哪里下手,一点点的看起来好 ...
- Hyper-V复制
Hyper-V复制: 默认HV01上的所有虚机都被复制到HV02的 Hyper-V Replica 目录下.虚机启用复制后,当需要启用虚机副本时,要先在HV01上把原虚机关机,然后在HV02上选择故障 ...