Я пытаюсь обрезать область UIView
в UIImage
для последующего повторного использования.
Я разработал этот код из некоторых фрагментов:
CGRect _frameIWant = CGRectMake(100, 100, 100, 100);
UIGraphicsBeginImageContext(view.frame.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
//STEP A: GET AN IMAGE FOR THE FULL FRAME
UIImage *_fullFrame = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//STEP B: CLIP THE IMAGE
CGImageRef _regionImage = CGImageCreateWithImageInRect([_fullFrame CGImage], _frameIWant);
UIImage *_finalImage = [UIImage imageWithCGImage:_regionImage];
CGImageRelease(_regionImage);
'view' - это UIView
, который я обрезаю, а _finalImage
- это UIImage
, который я хочу.
Код работает без проблем, но довольно медленно. Я полагаю, что некоторую производительность можно было бы получить, взяв лишь часть экрана непосредственно на шаге А.
Я ищу что-то вроде renderInContext: withRect:
или UIGraphicsGetImageFromCurrentImageContextWithRect()
хе-хе.
Все еще ничего не нашел :(, пожалуйста, помогите мне, если вы знаете какую-то альтернативу.