HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了IOS应用开发Icon规格自动裁剪器(C#)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

这几天折腾一个IOS应用的Icon,一个版本就要生成好几种规格分辨率的Icon,起初使用PS什么的一个一个生成,后来Icon改一版本又得重新生成一次,很是费劲,干脆自己写个程序来干这活得了,思路很简单,先导入一张大图(注意:这张图必须大于等于512*512),然后生成对应像素的小图,最后保存出来。

这里我使用C#来写,主要是虑到C#里Bitmap类有一个GetThumbnailImage()方法很容易实现图像缩小,经过简单的包装实现图像裁剪的函数如下:

        /// <sumMary>
        /// 获取等比例缩放图片方法
        /// </sumMary>
        /// <param name="imgPath">待缩放图片路径</param>
        /// <param name="savePath">缩放图片保存路径</param>
        /// <param name="format">缩放图片保存的格式</param>
        /// <param name="scaling">要保持的宽度或高度</param>
        /// <returns></returns>
        public bool GetThumbnail(String imgPath,String savePath,ImageFormat format,int scaling)
        {
            try
            {
                using (Bitmap myBitmap = new Bitmap(imgPath))//导入图像
                {
                    using (Image myThumbnail = myBitmap.GetThumbnailImage(scaling,scaling,() => { return false; },IntPtr.Zero))//生成小图
                    {
                        myThumbnail.Save(savePath,format);//导出小图
                    }
                }
                return true;
            }
            catch
            {
                return false;
            }

        }

别的不多说了,直接上代码

        String path = "";//生成图片保存的路径
        private void btnOpen_Click(object sender,EventArgs E)//打开图片按钮
        {
            openFileDialog1.Filter = "PNG Image|*.png";
            openFileDialog1.@R_772_10283@e = "打开";
            openFileDialog1.MultiSELEct = false;
            openFileDialog1.checkFileExists = false;
            openFileDialog1.Filename = String.Empty;
            openFileDialog1.ShowDialog();
            txtPath.Text = openFileDialog1.Filename;
            path = openFileDialog1.Filename.SubString(0,openFileDialog1.Filename.Length - openFileDialog1.SafeFilename.Length);
            path = path + datetiR_510_11845@e.Now.ToString("yyyymMddhhmmss") + "\\";
            //txtPath.Text = path;
        }

        private void btnBuilder_Click(object sender,EventArgs E)//生成按钮
        {
            if (txtPath.Text.Equals("") || path.Equals(""))
                return;
            if (Directory.CreateDirectory(path) != null)
            {
                bool flag = true;
                flag = flag && GetThumbnail(txtPath.Text,path + "iTunesArtwork",ImageFormat.Png,512);//iTunesArtwork
                flag = flag && GetThumbnail(txtPath.Text,path + "Icon@2x.png",114);//Application Icon for iPhone (reTina display)
                flag = flag && GetThumbnail(txtPath.Text,path + "Icon-72@2x.png",114);//Application Icon for the new iPad (reTina display)
                flag = flag && GetThumbnail(txtPath.Text,path + "Icon-small-50@2x.png",100);//SetTings/Spotlight icon for iPad
                flag = flag && GetThumbnail(txtPath.Text,path + "Icon-72.png",72);//Application Icon for the iPad
                flag = flag && GetThumbnail(txtPath.Text,path + "Icon-small@2x.png",58);//SetTings/Spotlight icon for iPhone (reTina display)
                flag = flag && GetThumbnail(txtPath.Text,path + "Icon.png",57);//Application Icon icon for iPhone
                flag = flag && GetThumbnail(txtPath.Text,path + "Icon-small-50.png",50);//SetTings/Spotlight icon for iPad
                flag = flag && GetThumbnail(txtPath.Text,path + "Icon-small.png",29);//SetTings/Spotlight icon for iPhone
                if (flag)
                {
                    messageBox.Show("ICON生成完毕!","成功",messageBoxButtons.OK,messageBoxIcon.Information);
                    System.Diagnostics.process.Start("Explorer.exe",path);
                }
                else
                {
                    messageBox.Show("出错啦!","错误",messageBoxIcon.Error);
                }
            }
        }

运行效果图:

IOS应用开发Icon规格自动裁剪器(C#)

生成的Icon:

IOS应用开发Icon规格自动裁剪器(C#)

程序简陋不过最终实现了目的,欢迎拍砖,最后附上工具源码:http://download.csdn.net/detail/wangqiuyun/4510176

大佬总结

以上是大佬教程为你收集整理的IOS应用开发Icon规格自动裁剪器(C#)全部内容,希望文章能够帮你解决IOS应用开发Icon规格自动裁剪器(C#)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。