为layer设置allowsGroupOpacity后,在图片旋转时不会产生锯齿,但是帧数很低,性能很差。
其中一个方法是:为图片增加透明的border。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
- (UIImage *)antiAlias
{
CGFloat border = 1.0f;
CGRect rect = CGRectMake(border, border, self.size.width-2*border, self.size.height-2*border);
UIImage *img = nil;
UIGraphicsBeginImageContext(CGSizeMake(rect.size.width,rect.size.height));
[self drawInRect:CGRectMake(-1, -1, self.size.width, self.size.height)];
img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIGraphicsBeginImageContext(self.size);
[img drawInRect:rect];
UIImage* antiImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return
antiImage;
}
|
以下是比较:
中: