diff --git a/_posts/2012-06-07-image-slicing-for-ios-app.md b/_posts/2012-06-07-image-slicing-for-ios-app.md
index 8fdc6b7..2a8f192 100644
--- a/_posts/2012-06-07-image-slicing-for-ios-app.md
+++ b/_posts/2012-06-07-image-slicing-for-ios-app.md
@@ -8,23 +8,25 @@ tags:
- Photoshop
---
-图形用户界面归根到底就是图形,图形有两种实现的方式,一是使用代码画出来,比如Quartz 2D技术,狠一点有OpenGL ES,一是则是使用图片。
-代码画的方式比较耗费程序员脑力,CPU或GPU; 图片则比较耗费磁盘空间,会增加app的体积.一般的app我们会偏重于使用图片来构建用户界面.
-设计师一般会使用PS来设计界面,所以在直接使用之前,有一个PSD到png的切图(Image Slicing)的过程.下面是切图过程中可能要注意的几点.
+图形用户界面归根到底就是图形,图形有两种实现的方式,一种是使用代码画出来,比如Quartz 2D技术,狠一点有OpenGL ES,另一种则是使用图片。
+代码画的方式比较耗费程序员脑力,CPU或GPU; 图片则耗费磁盘空间,会增加app的体积.一般的app我们会偏重于使用图片来构建用户界面.
+设计师一般会使用PS来设计界面,所以在直接使用之前,有一个PSD到png的切图(Image Slicing)过程.下面是切图过程中可能要注意的几点.
### 一.可重复元素
在用户界面的图形元素中,重复随处可见 ,所以我们利用好框架提供的接口, 以比较高的性价比创建用户界面。
#### 1.Color Pattern
Color Pattern在Web设计中也经常会遇到比如网页的背景,甚至网络中可以找到专门收集各类可重复的纹理图案的站点,比如 [http://subtlepatterns.com](http://subtlepatterns.com).
-比如这样的一个小图片模板
+比如这样的一个小图片模板
+

+
{% highlight objc %}
UIColor *circleColorPattern = [UIColor colorWithPatternImage:[UIImage imageNamed:@"circle_pattern.png"]];
{% endhighlight %}
这样便可以得到一个颜色模板,用这个颜色绘画或者填充某个区域的时候,上面的图片会在指定的区域中进行平铺.比如将一个View的背景颜色设置成这个颜色,便会得到如下结果
-
+

-
+
#### 2.resizableImage
除了整体平铺之外,很多时候我们希望某个图片的局部进行平铺,而其余部分则保持不变.
比如常见的按钮,聊天的气泡背景或者图片的阴影边框.
@@ -32,9 +34,15 @@ UIColor *circleColorPattern = [UIColor colorWithPatternImage:[UIImage imageNamed

但是自己看,你会发现按钮中间大都数像素都是横向重复的,所以可以使用iOS的图片接口来使用体积更小的图片实现相同的效果.
首先使用PS的切图工具进行切图,下图中的切图逻辑是,左边切14像素(13像素加1像素,1像素为中间重复部分),右边切13像素.
+

+
+
+
切图后将左右合并,变成最终所需要的图片
+

+
图片宽度为27像素宽,中间第14个像素为中间重复的部分.
{% highlight objc %}
@@ -49,6 +57,7 @@ resizableImageWithCapInsets:的参数是一个UIEdgeInsets的结构体类型,被
{% endhighlight %}
这个方法有局限性,它只能指定leftCapWidth和topCapHeight,然后只有一个像素能够重复,也就是rightCapWidth为 imageWidth-leftCapWidth-1,而bottomCapHeight为 imageHeight - topCapHeight -1,所以重复的始终是中间的那一个像素.
-
+
+
### 二.动画边缘锯齿
有时候需要在旋转的动画中使用到图片,比如按钮的旋转,图片的旋转,为了避免在旋转的过程中出现边缘锯齿,我们需要在切图的时候,在边缘上多留至少一像素的透明像素,因为iOS在处理图片的时候对于外边缘是不做抗锯齿处理的,但是对于图片内部的边缘则会做抗锯齿处理.