Quiero una captura de pantalla de la imagen en la pantalla guardada en la biblioteca de fotos guardada.
ios
iphone
screenshot
Pinchazo
fuente
fuente
El siguiente método también funciona para objetos OPENGL
fuente
UIGetScreenImage
es una API privadafuente
Fuente .
fuente
UIImage *myImage = [[UIImage alloc] initWithCGImage:imageRef scale:1.0 orientation:UIImageOrientationDownMirrored];
y ya no necesitas 'buffer2'. Por cierto, me parece que te olvidaste de la administración de memoria, no hay llamadas gratis () o release () ...EN SWIFT
fuente
Mira esta publicación, parece que puedes usar UIGetScreenImage () por ahora.
fuente
A partir de iOS10, esto se vuelve un poco más simple. UIKit viene con
UIGraphicsImageRender
eso te permiteDocumentos de Apple - UIGraphicsImageRenderer
Entonces ahora puedes hacer algo como esto:
Muchas de las respuestas aquí me funcionaron en la mayoría de los casos. Pero cuando intenté tomar una instantánea de un
ARSCNView
, solo pude hacerlo usando el método descrito anteriormente. Aunque vale la pena señalar que en este momento, ARKit todavía está en beta y Xcode está en beta 4fuente
Esto guardará una captura de pantalla y también devolverá la captura de pantalla.
fuente
Creo que el siguiente fragmento ayudaría si desea tomar una pantalla completa ( excepto la barra de estado ), simplemente reemplace AppDelegate con el nombre de delegado de su aplicación si es necesario.
fuente
No pude encontrar una respuesta con la implementación de Swift 3. Así que aquí va.
fuente
Para iOS 7.0 o superior ...
Si desea tomar capturas de pantalla de view say (myView), puede hacerlo con una sola línea:
fuente
Esto funcionará con Swift 4.2 , la captura de pantalla se guardará en la biblioteca, pero no olvide editar
info.plist @ NSPhotoLibraryAddUsageDescription
:fuente
Obtener captura de pantalla de la vista
Guardar imagen en fotos
Cómo
fuente
Obtener captura de pantalla de la vista:
Espero, esto es lo que estás buscando. Cualquier inquietud vuelve a mí. :)
fuente
Estoy respondiendo esta pregunta, ya que es muy vista, y hay muchas respuestas, además de Swift y Obj-C.
Descargo de responsabilidad Este no es mi código, ni mis respuestas, esto es solo para ayudar a las personas que llegan aquí a encontrar una respuesta rápida. ¡Hay enlaces a las respuestas originales para dar crédito donde se debe crédito! ¡Honra las respuestas originales con un +1 si usas su respuesta!
Utilizando
QuartzCore
En veloz
Nota: Como la naturaleza de la programación, es posible que sea necesario realizar actualizaciones , así que edítelo o avíseme. * Además, si no incluí una respuesta / método que valga la pena, ¡no dudes en hacérmelo saber también!
fuente
Otra opción es usar la herramienta de automatización en instrumentos. Escribes un guión para colocar la pantalla en lo que quieras, luego tomas las fotos. Aquí está el script que usé para una de mis aplicaciones. Obviamente, los detalles del script serán diferentes para su aplicación.
fuente
Dos opciones disponibles en el siguiente sitio:
OPCIÓN 1: usar UIWindow (probado y funciona perfectamente)
OPCIÓN 2: usando UIView
Para la pantalla de retina (como responde DenNukem)
Para más detalles: http://pinkstone.co.uk/how-to-take-a-screeshot-in-ios-programmatic/
fuente
Solo una pequeña contribución, lo he hecho con un botón, pero al presionar también se captura el botón presionado. Así que primero destaco.
Obtuve el cuerpo principal del código de: http://pinkstone.co.uk/how-to-take-a-screeshot-in-ios-programmatic/ donde utilicé la opción 1, la opción 2 no parecía funcionar para mi. Se agregaron los ajustes para los tamaños de pantalla de Rentina de este hilo y la falta de resaltado de screenShotButton. La vista en la que lo estoy usando es una pantalla de botones y etiquetas de StoryBoarded y con varias UIView agregadas más tarde a través del programa.
fuente
En Swift puedes usar el siguiente código.
fuente
Swift 4:
fuente