App图标生成器的实现,附源码
背景
网上各种生成app图标的网站和工具,感觉还是用自己写的心里畅快点,所以花了1个小时自己写了个。按照网上给的图标尺寸规范把所有尺寸的都生成了。
建了一个讨论群,533838427。很明显是针对独立开发的兄弟的,这小程序也看出来了,android、ios一把抓,希望也在趟这苦海的朋友一起交流。
源码下载地址:
链接: http://pan.baidu.com/s/1qXuZgXu 密码: ihfp
说明
c#写的,生成Andorid和Ios的所有图标尺寸。要是觉得尺寸不对或者命名规则不合适自己可以代码里立刻修改。代码里面备注还是很详细的。
1.修改尺寸
在Model里,把Android和Ios的尺寸分开保存在数组里面,可以根据需要调整。
public class AndroidSizes
{
public static int[] mdpiSizes = { , , , };
public static int[] hdpiSizes = { ,,, };
public static int[] xhdpiSizes = { , , , };
public static int[] xxhdpiSizes = { , , , };
} public class IosSizes
{
public static int[] icon3Sizes = { , , , , , , };
public static int[] icon2Sizes = { , , , , , , };
public static int[] icon1Sizes = { , , , , , , };
}
2.修改保存文件夹和命名规范
现在的文件夹命名规范是ios按1X、2X、3X直接保存在一个文件夹里面,按类型命名
android是按照xhdpi、hdpi、xxhdpi分别保存的,按尺寸命名
如果要修改命名可以在form的backgroundworker里面找到,这里图省事就直接逻辑写进去了。
private string CreateFolder(string file)
{
string filePath = Path.GetDirectoryName(file);
string fileName = Path.GetFileNameWithoutExtension(file);
string root = filePath + "\\" + fileName;
//根目录
if (!Directory.Exists(root))
{
Directory.CreateDirectory(root);
}
//子目录
foreach (string child in childFolders)
{
if (!Directory.Exists(root + "\\" + child))
{
Directory.CreateDirectory(root + "\\" + child);
}
}
return root;
} private void CreateIOSThumbs(string folder, string file)
{
//@1x
foreach (int size in Model.IosSizes.icon1Sizes)
{
string thumb = folder + "\\ios\\@1x" + size + ".png";
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
} //@2x
foreach (int size in Model.IosSizes.icon2Sizes)
{
string thumb = folder + "\\ios\\@2x" + size + ".png";
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
} //@3x
foreach (int size in Model.IosSizes.icon3Sizes)
{
string thumb = folder + "\\ios\\@3x" + size + ".png";
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
}
} private void CreateANDROIDThumbs(string folder, string file)
{
// "android", "android\\hdpi", "android\\mdpi", "android\\xhdpi", "android\\xxhdpi"
//hdpi
foreach (int size in Model.AndroidSizes.hdpiSizes)
{
string thumb = folder + "\\android\\hdpi\\" + size + ".png";
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
}
//mdpi
foreach (int size in Model.AndroidSizes.mdpiSizes)
{
string thumb = folder + "\\android\\mdpi\\" + size + ".png";
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
} //xhdpi
foreach (int size in Model.AndroidSizes.xhdpiSizes)
{
string thumb = folder + "\\android\\xhdpi\\" + size + ".png";
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
} //xxhdpi
foreach (int size in Model.AndroidSizes.xxhdpiSizes)
{
string thumb = folder + "\\android\\xxhdpi\\" + size + ".png";
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
}
}
参考
http://www.uigreat.com/guifan/ 尺寸规范
http://www.cnblogs.com/zzy2740/archive/2012/02/29/2374648.html 缩略图生成
自己在做独立开发,希望广结英豪,尤其是像我一样脑子短路不用react硬拼anroid、ios原生想干点什么的朋友。
App独立开发群533838427
微信公众号『懒文』-->lanwenapp<--
App图标生成器的实现,附源码的更多相关文章
- 开源方案搭建可离线的精美矢量切片地图服务-8.mapbox 之sprite大图图标文件生成(附源码)
项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.ht ...
- openlayers4 入门开发系列之地图标绘篇(附源码下载)
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)
前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...
- 使用 CSS3 动感的图片标题动画效果【附源码下载】
在网站中,有很多地方会需要在图片上显示图片标题.使用 CSS3 过渡和变换可以实现动感的鼠标悬停显示效果.没有使用 JavaScript,所以只能在支持 CSS3 动画的现代浏览器中才能正常工作.您可 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码]
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码] Unity 2.x依赖注入(控制反转)IOC,对 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码]
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码] 开始,我们有了一系列的解决方案,我们将动手搭建新系统吧. 用 ...
- 极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
原文:极限挑战-C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码) 实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方 ...
- Android中Canvas绘图基础详解(附源码下载) (转)
Android中Canvas绘图基础详解(附源码下载) 原文链接 http://blog.csdn.net/iispring/article/details/49770651 AndroidCa ...
- 为SRS流媒体服务器添加HLS加密功能(附源码)
为SRS流媒体服务器添加HLS加密功能(附源码) 之前测试使用过nginx的HLS加密功能,会使用到一个叫做nginx-rtmp-module的插件,但此插件很久不更新了,网上搜索到一个中国制造的叫做 ...
- Django集成Markdown编辑器【附源码】
专注内容写作的你一定不要错过markdown 简单介绍 markdown是一种标记语言,通过简单的标记语法可以使普通的文本内容具有一定的格式,使用非常简单,学习成本极低 目前各大Blog平台都已支持m ...
随机推荐
- Milking Cows 挤牛奶
1.2.1 Milking Cows 挤牛奶 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 554 Solved: 108[Submit][Status ...
- 设计模式之Adapter
设计模式总共有23种模式这仅仅是为了一个目的:解耦+解耦+解耦...(高内聚低耦合满足开闭原则) 介绍: 将两个不兼容的类纠合在一起使用,属于结构型模式,也有人称它为wrapper(包装类). 包装类 ...
- 四. Jmeter--JDBC 请求
一, SQLserver 1.下载 JDBC Driver (sqljdbc_6.0.8112.100_enu.exe) https://www.microsoft.com/en-us/downlo ...
- React 16 源码瞎几把解读 【三 点 二】 react中的fiberRoot
〇.先来看看常用的常量 NoWork = 0 noTimeout = undefined HostRoot = 3 NoContext = 0b000; AsyncMode = 0b001; Stri ...
- Linux是对用户的密码的复杂度要求设置【转】
那么Linux是如何实现对用户的密码的复杂度的检查的呢?其实系统对密码的控制是有两部分组成: 1 cracklib 2 /etc/login.defs pam_cracklib.so 才是控制密码复杂 ...
- 选中一行并且选中该行的radio
$("tr").bind("click",function(){ $("input:radio").attr("checked&q ...
- C基础 如何让代码只执行一次
1.0 最简单, 最高效的方式 C 代码运行起点 main 就是个大单例函数. 如果把函数注册在其里面, 那么一定很可以 :) // 某个库需要初始化的函数 void log_init(void) { ...
- python redis-string、list、set操作
string操作 redis中的string在内存中都是按照一个key对应一个value来存储的 方法: set() 方法 : 写入一条数据 mset() 方法: 写入多条数据 , 可是Key-Val ...
- Nginx源码分析--数组(转)
原文地址:http://blog.csdn.net/marcky/article/details/5747431 备注:以下关于Nginx源码的分析基于淘宝开源项目Tengine. Nginx中对数组 ...
- Bootstrap的使用。。。
概览 深入了解 Bootstrap 底层结构的关键部分,包括我们让 web 开发变得更好.更快.更强壮的最佳实践. HTML5 文档类型 Bootstrap 使用到的某些 HTML 元素和 CSS 属 ...