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  縮略圖生成

 

自己在做獨立開發,希望廣結英豪,尤其是像我一樣腦子短路不用react硬拼anroid、ios原生想干點什么的朋友。

App獨立開發群533838427

微信公眾號『懶文』-->lanwenapp<--


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM