Sto provando a ritagliare una regione di un UIView
, in un UIImage
per il successivo riutilizzo.UIImmagine da una regione di UIView
ho lavorato fuori questo codice da alcuni frammenti:
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);
'vista' è il UIView
quale sto ritaglio e _finalImage
è il UIImage
che voglio.
Il codice funziona senza problemi, tuttavia è un po 'lento. Credo che alcune prestazioni potrebbero essere acquisite prendendo solo la porzione dello schermo direttamente nel passaggio A.
Sto cercando qualcosa come renderInContext: withRect:
o UIGraphicsGetImageFromCurrentImageContextWithRect()
hehe.
Ancora non hanno ancora trovato nulla :(, si prega di aiutare me, se siete a conoscenza di qualche alternativa
potresti riformattarlo? difficile da leggere – Rudiger