una pantalla hacer cómo como captura ios objective-c uiimageview screenshot

hacer - Mantenga la transparencia en la captura de pantalla iOS



como hacer captura de pantalla en iphone 4 (4)

Estoy capturando una captura de pantalla de una vista particular en mi archivo Xib con el siguiente código ...

UIView* captureView = self.view; UIGraphicsBeginImageContextWithOptions(captureView.bounds.size, NO , 0.0f); [captureView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage * screenshot = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

Funciona bien y guarda la imagen JPG al giro de la cámara.

Pero el problema es que hay otro UIImageView en la parte superior de mi vista, que UIImageView tiene una imagen semitransparente. Mi captura de pantalla no conserva esa transparencia en la captura de pantalla que está tomando. Quiero mantener la transparencia tal como está en la pantalla real.

¿Cómo se puede preservar la transparencia en la captura de pantalla?


Los JPG no tienen transparencia, así que tan pronto como lo convierta en JPG, el alfa desaparecerá. Esta es una limitación conocida de UIImageWriteToSavedPhotosAlbum

no mantiene png.


Si especifica "No" para la propiedad opaca, su imagen debe incluir un canal alfa para que esto funcione. Verifique que su imagen tenga un canal alfa.


prueba esto. este código funciona para mí

UIGraphicsBeginImageContext(baseViewOne.frame.size); [[baseViewOne layer] renderInContext:UIGraphicsGetCurrentContext()]; UIImage * screenshota = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();

también revisa las capturas de pantalla del codificador de cacao


NSData* imdata = UIImagePNGRepresentation(_snapshotImgView.image); UIImage* snapshotPNG = [UIImage imageWithData:imdata]; UIImageWriteToSavedPhotosAlbum(snapshotPNG, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);