Grunt中批量无损压缩图片插件--grunt-sprite
2015-07-28 17:35
204 查看
这是什么
这是一个帮助前端开发工程师将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格式,
png8
png24和
png32不限
理论上高清切片都应该是源切片尺寸的2倍,所以所有高清切片的尺寸宽和高都必须是偶数
生成后的雪碧图将以源css文件名来命名
相关文章推荐
- php 防止表单重复提交
- JDBC的应用,一次代码抄袭行为的收获。(内容包含:Class.forName(),Statement,ResultSet ,DatabaseMetaData )等部份知识点)
- 尊贤、谦虚、谨慎、交友、有恒、微渐、慎始终、因果
- JAVA连接数据库编程 JDBC
- jquery操作复选框(checkbox)的12个小技巧总结
- App上线流程全攻略(史上最详细步骤)
- ext中对json数据的处理解析
- Grunt中批量无损压缩图片插件--Grunt-contrib-imagemin
- 使用jQuery开发一个带有密码强度检验的超酷注册页面
- vsam
- RecyclerView 实现瀑布流效果
- Oracle MapViewer11g安装与部署
- magic_quotes_gpc
- Aizu 0005 GCD and LCM
- 程序员分类(转)
- Opencart2 后台设置图片的默认目录
- 一次AIX系统报错的问题处理思路
- 使用jQuery开发一个响应式超酷整合RSS信息阅读杂志
- Spring各个jar包的简介
- linux下svn命令使用大全