参考
使用Quartz 2D 可以对图片进行裁剪,简单的可以裁剪一个矩形,复杂的可以根据CGPath实现裁剪,也可以使用UIBezierPath进行裁剪,也可以使用一个UIImage做为mask进行裁剪。
对于如下图片,不使用裁剪时,显示全部内容
使用CGContextClipToRect裁剪矩形,
UIImage* imageSrc = [UIImage imageNamed:@"island.png"];
CGColorSpaceRef colorRef = CGColorSpaceCreateDeviceRGB();
CGContextRef contextRef = CGBitmapContextCreate(nil, imageSrc.size.width, imageSrc.size.height, 8, imageSrc.size.width*4, colorRef, kCGImageAlphaPremultipliedFirst);
CGContextClipToRect(contextRef, CGRectMake(30, 100, 200, 200));
CGContextDrawImage(contextRef, CGRectMake(0, 0, imageSrc.size.width, imageSrc.size.height), imageSrc.CGImage);
CGImageRef imageRef = CGBitmapContextCreateImage(contextRef);
UIImage* imageDst = [UIImage imageWithCGImage:imageRef scale:[UIScreen mainScreen].scale orientation:UIImageOrientationUp];
CGContextRelease(contextRef);
CGColorSpaceRelease(colorRef);
return imageDst;
结果如下:
使用CGPath 设定一个区域,然后裁剪path,
UIImage* imageSrc = [UIImage imageNamed:@"island.png"];
CGColorSpaceRef colorRef = CGColorSpaceCreateDeviceRGB();
CGContextRef contextRef =