在iOS中特定形状剪裁图片的实现

2014-11-24 08:27:27 · 作者: · 浏览: 2

在iOS中如何用特定的形状剪裁覆盖UIImageView的图片?效果图如下:



解决方案:


用两个图片和下面的方法实现。 图片1是被剪裁的图片,图片2是需要剪裁的形状。


- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {


CGImageRef maskRef = maskImage.CGImage;


CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);


CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
return [UIImage imageWithCGImage:masked];


}


如果要调整尺寸用


UIImage *small = [UIImage imageWithCGImage:original.CGImage scale:0.25 orientation:original.imageOrientation];