Próbuję przyciąć region z UIView
, do UIImage
do późniejszego wykorzystania.UIImage z regionu UIView
mam wypracowane ten kod z niektórych fragmentów:
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' jest UIView
który mam wycinek i _finalImage
jest UIImage
chcę.
Kod działa bez problemu, jednak jest trochę powolny. Wierzę, że niektóre wydajności można uzyskać, biorąc tylko część ekranu bezpośrednio w kroku A.
Szukam czegoś takiego jak renderInContext: withRect:
lub UIGraphicsGetImageFromCurrentImageContextWithRect()
hehe.
Nadal nie znalazłem nic jeszcze :(, proszę mi pomóc, jeśli wiesz o jakiejś alternatywie
Czy możesz przeformatować? trudne do odczytania – Rudiger