老早之前做IOS APP开发,为折腾一个IOS应用的Icon,用C#写了一个简单的IOS应用开发Icon规格自动裁剪器,但时过境迁,目前IOS设备屏幕规格也是越来越多,一个版本就要生成好几种规格分辨率的Icon,用PS什么的一个一个生成费劲,如果Icon有变动又得重新生成一次,所以还是整个程序来干这活比较轻松。
思路很简单,先导入一张大图(注意:这张图必须大于等于1024*1024,因为iTunesArtwork@2x的规格是1024*1024),然后生成对应像素的小图,最后保存出来。
首先来看一下目前这些Icon规格:
//for Ad Hoc Only
iTunesArtwork@2x:1024*1024
iTunesArtwork:512*512
//for App Icon
Icon-60@3x.png:180*180 //iPhone 6 Plus (@3x)
Icon-60@2x.png:120*120 //iPhone 6 and iPhone 5 (@2x)
Icon-76@2x.png:152*152 //iPad and iPad mini (@2x)
Icon-76.png:76*76 //iPad 2 and iPad mini (@1x)
Icon.png:57*57 //iPhone Non-Retina (iOS 6.1 and Prior)
Icon@2x.png:114*114 //iPhone Retina (iOS 6.1 and Prior)
Icon-72.png:72*72 //iPad Non-Retina (iOS 6.1 and Prior)
Icon-72@2x.png:144*144 //iPad Retina (iOS 6.1 and Prior)
//for Spotlight search results icon
Icon-40.png:40*40 //iPad Non-Retina
Icon-40@2x.png:80*80 //iPad Retina
Icon-40@3x.png:120*120 //iPhone 6 Plus
//for Settings icon
Icon-29.png:29*29 //iPhone Non-Retina (iOS 6.1 and Prior)
Icon-29@2x.png:58*58 //iPhone Retina (iOS 6.1 and Prior)
Icon-29@3x.png:87*87 //iPhone 6 Plus
Icon-50.png:50*50 //iPad Non-Retina (iOS 6.1 and Prior)
Icon-50@2x.png:100*100 //iPad Retina (iOS 6.1 and Prior)
这里我使用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;
}
}
最终运行效果图:
生成的Icon:
具体代码可以在这下载:http://download.csdn.net/detail/wangqiuyun/7976361
转载请注明:http://blog.csdn.net/wangqiuyun/article/details/39576293