iOS делает часть UIImage прозрачной - PullRequest
11 голосов
/ 29 ноября 2011

У меня есть UIImage, часть которого была выбрана пользователем для очистки (сделать прозрачным).Для выбора я использовал NSBezierPath.

Как очистить / сделать прозрачной часть UIImage в iOS?

1 Ответ

14 голосов
/ 29 ноября 2011

Во-первых, я предполагаю, что у вас есть UIBezierPath (iOS), а не NSBezierPath (Mac OS X).

Для этого вам потребуется использовать базовую графику, создать контекст изображения, нарисовать UIImageв этот контекст, а затем очистить область, указанную NSBezierPath.

// Create an image context containing the original UIImage.
UIGraphicsBeginImageContext(originalImage.size);
[originalImage drawAtPoint:CGPointZero];

// Clip to the bezier path and clear that portion of the image.
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddPath(context,bezierPath.CGPath)
CGContextClip(context);
CGContextClearRect(context,CGRectMake(0,0,originalImage.size.width,originalImage.size.height);

// Build a new UIImage from the image context.
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...