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 = { 48, 32, 16, 24 };
        public static int[] hdpiSizes = { 72,48,24,36 };
        public static int[] xhdpiSizes = { 48, 32, 16, 24 };
        public static int[] xxhdpiSizes = { 144, 96, 48, 72 };
    }

    public class IosSizes
    {
        public static int[] icon3Sizes = { 1024, 512, 180, 114, 87, 75, 66 };
        public static int[] icon2Sizes = { 1024, 512, 120, 114, 58, 75, 44 };
        public static int[] icon1Sizes = { 1024, 512, 120, 57, 29, 38, 30 };
    }

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  缩略图生成

时间: 2024-08-04 15:57:42

App图标生成器的实现,附源码的相关文章

Android学习笔记(十五)——碎片的生命周期(附源码)

碎片的生命周期 点击下载源码 与活动类似,碎片具有自己的生命周期.理解了碎片的生命周期后,我们可以在碎片被销毁时正确地保存其实例,在碎片被重建时将其还原到前一个状态. 1.使用上一篇的项目Fragments,在Fragment1.java文件中添加如下代码: package net.zenail.Fragments; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragm

一步一步搭建Svn+Apache环境(附源码包)

一步一步搭建Svn+Apache环境(附源码包) 看了很多网上的搭建方法,但是因为配置的svn和Apache的版本问题和网上写的教程的不完整等原因,阻碍了很多想要学习的朋友!!今天亲手搭建了一下Svn+Apache环境,并且详细记录了每一步搭建的细节,送给需要的朋友们! 软件版本: redhat6.4(64位) apr-1.5.1.tar.gz apr-util-1.5.3.tar.gz httpd-2.2.27.tar.gz sqlite-amalgamation-3.6.17.tar.gz

Android高仿QQ消息滑动删除(附源码)

大家都应该使用过QQ吧,他的消息中可以滑动删除功能,我觉得比较有意思,所以模仿写了一个,并且修改了其滑动算法.我先贴几个简单示范图吧 其实主要用的是算法以及对ListView的把控. 一下是适配器的类 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

opencvbase 实现opencv打开摄像头和初步处理等效果操作(附源码)

// TwoCameraOnTimer2Dlg.cpp : 实现文件 /* CvMat, Mat, IplImage之间的互相转换 IpIImage -> CvMat CvMat matheader; CvMat * mat = cvGetMat(img, &matheader); CvMat * mat = cvCreateMat(img->height, img->width, CV_64FC3); cvConvert(img, mat) IplImage -> Mat

Android跟踪球-手势移动图片-自定义控件(附源码)

由于我不会制作动画图片,所以先放几及其不具备代表性的展示图片. 我以前的思路是通过动态的设置xy坐标通过手势移动来识别,但是我后来试了一下,发现运行效果极差.所以偷闲做了下这个跟踪球控件,其实实现十分简单.只要大家熟悉自定义控件的使用以及手势识别.基本上就ok了. 现在我们看下这个控件的源码TouchMoveView.java package com.fay.touchmove; import android.annotation.SuppressLint; import android.con

(转)干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码)

干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码) 该博客来源自:https://mp.weixin.qq.com/s?__biz=MzA4NzE1NzYyMw==&mid=2247492203&idx=5&sn=3020c3a43bd4dd678782d8aa24996745&chksm=903f1c73a74895652ee688d070fd807771e3fe6a8947f77f3a15a44a65557da0313ac5ad592c

Android应用经典主界面框架之一:仿QQ (使用Fragment, 附源码)

最近反复研究日常经典必用的几个android app,从主界面带来的交互方式入手进行分析,我将其大致分为三类.今天记录第一种方式,即主界面下面有几个tab页,最上端是标题栏,tab页和tab页之间不是通过滑动切换的,而是通过点击切换tab页.早期这种架构一直是使用tabhost+activitygroup来使用,随着fragment的出现及google官方也大力推荐使用fragment,后者大有代替前者之势.本文也使用fragment进行搭建,标题中的"经典"指这种交互经典,非本文的代

.Net 转战 Android 4.4 日常笔记(9)--常用组件的使用方法[附源码]

原文:.Net 转战 Android 4.4 日常笔记(9)--常用组件的使用方法[附源码] 经过两天的学习,把常用的组件都学习了一遍,并做成了App 学习可能真没有捷径,跟学习html有点类似,都是一个控件一个控件学习并使用,最后拼凑成一个系统 链接:http://pan.baidu.com/s/1hqefzEW 密码:zbel  最低API 2.3 目标API 4.4 采用Android Studio 0.58IDE 希望给和我同样的初学者带来一些便利,和开发时候可以查询,第一个版本可能比较

Qt Quick 图像处理实例之美图秀秀(附源码下载)

在<Qt Quick 之 QML 与 C++ 混合编程详解>一文中我们讲解了 QML 与 C++ 混合编程的方方面面的内容,这次我们通过一个图像处理应用,再来看一下 QML 与 C++ 混合编程的威力,同时也为诸君揭开美图秀秀.魔拍之类的相片美化应用的底层原理. 项目的创建过程请参考<Qt Quick 之 Hello World 图文详解>,项目名称为 imageProcessor ,创建完成后需要添加两个文件: imageProcessor.h 和 imageProcessor.

7个Web前端极其精美的动画效果模板(附源码)

1.  jQuery动态随机背景滚动 源码下载  /  在线演示 2.  jquery animate分页按钮 源码下载 /  在线演示 3. html5+css3日食场景特效 源码下载/   在线演示 4. HTML5小球碰撞叠加 鼠标点击拨弄,能在支持 FireFox.Chrome.Safari.傲游.搜狗.360浏览器. 源码下载/   在线演示 5.  css3实现天气图标 源码下载/  在线演示 6.  css3图片变形特效   源码下载/  在线演示 7. jquery心电图跳动 源