gen-sprites
gen-sprites 是帮你将网站中使用的图片合并成一张图片并生成css的工具.
####准备工作
使用前请确保己安装python, imagemagick, 以及必要的python包yaml, jinja2, wand(建议使用pip安装)
####创建配置文件 配件文件是告诉脚本你要合并图片的规则. 配置文件使用yaml.
dir: . # dir 表示之后描述的文件相对于哪个目录, 若省略, 默认表示当前目录.
imgs: # imgs 表示要生成的图片, 使用list, 即可同时处理生成多张图片.
- name: icons.png # 多图合并功能使用(未来开放此功能)
files: # files表示待合并的图片, 可以使用glob正则, 允许string(若只有一条规则)和list格式.
- 'icons/icon*.png'
output: output/icons.png # 表示输出文件位置, 若省略则和name同名, 生成在当前目录, 若不想输出内容, 请指定为false
css: # 表示要生成的css文件, 若省略, 则不输出css文件
template: icons.css.template # 表示要输出的css模版位置, 不填写则不输出内容
output: output/icons.css # css输出的位置, 不填写则不输出内容
####创建css模版文件 css模版文件可以输出指定的css样式, 也可以输出less, sass或其他格式的内容, css模版只指基础的模版支持, 和语言无关. 模版文件使用jinja2(基于python的模版引擎)
模版文件中可使用的变量有
-
canvas 表示画布信息
可使用属性:
width: 表示画布宽度
height: 表示画布高度
-
images 表示图片列表
可使用属性:
name: 表示图片的文件名(己去除扩展名).
width: 表示图片宽度.
height: 表示图片高度.
background_position: 表示图片相对于合并后图片的位置.
.icon {
background-image: url(icon.png);
}
{% for img in images %}
.{{ img.name }} {
background-position: {{ img.background_position }};
width: {{ img.width }};
height: {{ img.height }};
}
{% endfor %}