2011-08-03 12 views
5

Estoy tratando de tomar una captura de pantalla en el momento de guardar, pero solo puedo hacer una pantalla completa. ¿Hay alguna forma de tomar una captura de pantalla parcial?Tomar una captura de pantalla parcial en el iPad

Aquí hay un ejemplo. Supongamos que solo quiero tomar una captura de pantalla de la sección resaltada en rojo. Gracias por la ayuda.

http://img197.imageshack.us/img197/6499/sampleimagez.jpg

+2

Crea un UIImage de la pantalla y córtalo al tamaño del marco de esa vista. – runmad

+0

Eche un vistazo a este hilo: http://www.iphonedevsdk.com/forum/iphone-sdk-development/74659-partial-screenshot.html Además, siéntase libre de elegir un nombre de usuario. Bienvenido a StackOverflow! – Moshe

+0

@ j0k - A las cuentas nuevas que no eligen un nombre de usuario se les asigna un número. – Moshe

Respuesta

4

Parece que desea una captura de pantalla de esa vista web allí. Si desea obtener una imagen de una vista específica y sólo ese punto de vista (+ subvistas), puede utilizar el siguiente código:

- (UIImage*)captureView:(UIView*)view 
{ 
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) 
     UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale); 
    else 
     UIGraphicsBeginImageContext(self.view.bounds.size); 

    CGContextRef context = UIGraphicsGetCurrentContext(); 

    [view.layer renderInContext:context]; 

    UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return img; 
} 

sólo tiene que pasar la vista web a esa función y debería funcionar.

EDIT:

Asumiendo que esto ocurrió sólo una imagen de ejemplo y que desea una captura de pantalla de un área que no está contenido en su propio punto de vista, ir con una solución de Canadá Dev. Recorta la imagen en el área que quieras.

+0

Esto no parece capturar sub-vistas de la vista principal que no están en esa vista. – MikeN

+0

¿Qué quieres decir? –

+0

Si hay dos vistas diferentes superpuestas, quiero obtener una captura de pantalla de la intersección de esas vistas (de hecho, el área de la pantalla que finalmente es visible para el usuario final). Este código solo tomará la imagen de una de esas subvistas. Quiero que actúe como la captura de pantalla "rubberband" del OSX. – MikeN

Cuestiones relacionadas