icon图标批量生成 css 样式文件工具
来源:互联网 发布:java线程的生命周期 编辑:程序博客网 时间:2024/05/17 02:10
工欲善其事必先利其器,最近在使用ExtJS、EasyUI框架时,经常需要用到一些png图标,从网上收集了将近2000个图标,但还需要生成 css 样式文件, 一个一个写的话太不现实,于是写个小工具生成吧。
我先把图标资源放出来:http://download.csdn.net/detail/xz2001/5387797
代码都很简单,遍历所有图标,直接生成css文件就行了,直接上代码了:
1 FileName 类
此类用于格式化现有的文件名,以保持文件名和生成的样式class名称风格统一。
public static class FileName { private static Dictionary<string, string> Renames = new Dictionary<string, string>();//保存重命名的字符配置,去除些太长的名字 static FileName() {//这里可以根据自己的需要随意加 Renames.Clear(); Renames.Add("application", "app"); Renames.Add("addresses", "address"); Renames.Add("previous", "prev"); Renames.Add("horizontal", "hor"); Renames.Add("vertical", "ver"); Renames.Add("anticlockwise", "reversed"); Renames.Add("extension", "ext"); Renames.Add("organisation", "organic"); Renames.Add("fastforward", "fast"); } public static string FormatName(string name)//格式化文件名 { int index = name.LastIndexOf('.'); string ext = name.Substring(name.LastIndexOf('.')); name = name.Substring(0, index); RegexOptions RegexOptions = ((RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline) | RegexOptions.IgnoreCase); Regex regex = new Regex(@"[\.\- _]+", RegexOptions);//把原始的文件名中,把英文点、减号、空格和下划线分隔全部替换成减号 name = regex.Replace(name, "-"); return Hump(name) + ext; } public static string Hump(string name) { var parts = name.Split('-');//以减号拆分成数组,分别处理每一段 for (var i = 0; i < parts.Length; i++) { parts[i] = Word(parts[i]); } return String.Join("-", parts);//使用减号重新连接处理后的每一段 } public static string Word(string part)//处理每一个word { if (string.IsNullOrEmpty(part)) return null; part = part.ToLower(); // 简化文件名,如果需要把下面2行注释去掉 //if (Renames.ContainsKey(part)) // part = Renames[part]; if (part.Length == 1) return part.ToLower(); return part.Substring(0, 1).ToLower() + part.Substring(1).ToLower();//如果喜欢驼峰命名法,可以在这处理,把第一个字符转换成大写即可 } }
2 Form窗体中的主要处理方法
所有代码请参考源码,这个只是button的处理方法代码:
private void button2_Click(object sender, EventArgs e) { textBox1.Text = textBox1.Text.Trim(); if (!System.IO.Directory.Exists(textBox1.Text))//textBox1里应该是选择一个目录位置,里面全是图标文件,在这要判断下这个目录是否存在 { MessageBox.Show("请选择目录!"); return; } label2.Text = "loading..."; textBox1.ReadOnly = true; var dir = new DirectoryInfo(textBox1.Text); var files = dir.GetFiles("*.png");//搜索所有.png文件 progressBar1.Maximum = files.Length * 2;//设置进度条为文件数*2,第一次遍历修改文件名,第二次生成css string newPath; string tempName; int count = 0; int err = 0; int maxLen = 0; richTextBox1.Text += "准备格式化文件名..."; foreach (var file in files)//格式化文件名 { count++; label2.Text = "格式化第" + count + "个文件:" + file.Name; progressBar1.Value = count; tempName = FileName.FormatName(file.Name);//调用静态类的格式化方法 newPath = textBox1.Text + "\\" + tempName; if (maxLen < tempName.Length) maxLen = tempName.Length; try { File.Move(file.FullName, newPath); } catch { richTextBox1.Text += "\n 文件名重复:" + file.Name; err++; } } // 生成css richTextBox1.Text += "\n 准备创建css文件..."; StringBuilder sb = new StringBuilder(100); sb.Append("/* 来自 calvin 的自动生成工具,QQ:54335020 */\r\n");//生成css文件内容 foreach (var file in files) { count++; label2.Text = "生成第" + count + "个文件:" + file.Name; progressBar1.Value = count; tempName = file.Name.Substring(0, file.Name.LastIndexOf('.')); sb.Append(".ic-" + tempName.PadRight(maxLen + 1) + "{ background:url('icons/" + tempName + ".png') no-repeat center center; }\r\n"); //easyui 样式 //sb.Append(".ic-" + tempName.PadRight(maxLen + 1) + "{ background-image:url(../icons/" + tempName + ".png)!important; }\r\n"); //extjs 样式 } File.WriteAllText(textBox1.Text + "\\style.css", sb.ToString());//向ID文件中写入,文件名是style.css,放在图标目录里 richTextBox1.Text += "\n css文件生成完成"; label2.Text = "处理完成"; textBox1.ReadOnly = false; }
没啥可讲的,很简单的工具,放个链接:http://download.csdn.net/detail/xz2001/5387935
- icon图标批量生成 css 样式文件工具
- CSS Sprites 样式生成工具
- CSS Sprites 样式生成工具
- CSS样式在线生成工具
- css3样式书写ICON图标
- CSS Sprites样式生成工具的使用
- 在线生成app icon图标
- Css图标样式库
- 获取文件图标,返回Icon
- jQuery Mobile中图标icon样式大全ui-icon-*
- 使用C#从图片文件生成图标ICON文件(附源文件)
- icon图标在线生成教程(svg转icon)
- 使用Automator批量生成图标
- 获取.exe/.dll/.icon文件的Icon图标资源
- 获取指定文件的图标,返回Icon
- MFC 对话框载入ICON图标文件
- 用 Icon.ExtractAssociatedIcon 函数获取文件图标
- 文件格式解析:图标文件 (icon file)
- conky配置
- 一个关于位点的所在位置的程序
- 在Ubuntu12.04上部署CloudFoundry-ng (二) uaa和cloud_controller_ng的部署
- JS读取cookie(记住账号密码)
- jbpm的流程demo
- icon图标批量生成 css 样式文件工具
- c语言中的static和extern关键字
- UVa 11624 - Fire!
- Objective-C 之类目(category)的应用
- Evernote有用的快捷键操作收集
- 基于列的数据库vertica
- 完全掌握java中的"包"机制
- ClassLoder类装载器
- go语言学习---map