后续加入圆角效果
-(void)crop:(UIImage*)image{
float size=self.frame.size.width;NSMutableArray* points=[[NSMutableArray alloc]init];
//添加正六边形的点
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2, 0)]];
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2-sqrt(3)*size/4, size/4)]];
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2-sqrt(3)*size/4, size*3/4)]];
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2, size)]];
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2+sqrt(3)*size/4, size*3/4)]];
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2+sqrt(3)*size/4, size/4)]];
CGRect rect = CGRectZero;
rect.size = image.size;
UIGraphicsBeginImageContextWithOptions(rect.size, YES, 0.0);
{
[[UIColor blackColor] setFill];
UIRectFill(rect);
[[UIColor whiteColor] setFill];
UIBezierPath *aPath = [UIBezierPath bezierPath];
// Set the starting point of the shape.
CGPoint p1 = [self convertCGPoint:[[points objectAtIndex:0] CGPointValue] fromRect1:self.frame.size toRect2:image.size];
[aPath moveToPoint:CGPointMake(p1.x, p1.y)];
for (uint i=1; i<points.count; i++)
{
CGPoint p = [self convertCGPoint:[[points objectAtIndex:i] CGPointValue] fromRect1:self.frame.size toRect2:image.size];
[aPath addLineToPoint:CGPointMake(p.x, p.y)];
}
[aPath closePath];
[aPath fill];
}
UIImage *mask = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0);
{
CGContextClipToMask(UIGraphicsGetCurrentContext(), rect, mask.CGImage);
[image drawAtPoint:CGPointZero];
}
UIImage *maskedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[super setImage:maskedImage];
}