Necesito tomar los contenidos de NSView
y ponerlos en un NSImage
, para un proyecto experimental. es posible? Hice algunas búsquedas en Google, probé dos métodos que encontré, pero en realidad no funcionaron. ¿Alguna sugerencia?¿Cómo se toma una "captura de pantalla" de un NSView?
Respuesta
[[NSImage alloc] initWithData:[view dataWithPDFInsideRect:[view bounds]]];
Muchas gracias. – Debashis
+1 Vale la pena señalar que, aunque esta es la manera correcta en general, hay algunos casos en los que no funcionará, por ejemplo, vistas como 'NSOpenGLView' que tienen su propio contexto de representación de OpenGL. En ese caso, debe obtener los datos de píxeles directamente y crear un representante de mapa de bits a partir de él, que es un poco menos claro. – walkytalky
Obs: sombras y esquinaRadius se ignorará – codrut
I thinkt, Debashis está pensando más en cosas como http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaDrawingGuide/Images/Images.html#//apple_ref/doc/uid/TP40003290-CH208-BCIIIJFB
Saludos
el enlace ahora está roto – Supertecnoboff
let dataOfView = view.dataWithPDFInsideRect(view.bounds)
let imageOfView = NSImage(data: dataOfView)
De WWDC 2012 Sesión 245 (traducido a Swift):
let viewToCapture = self.window!.contentView!
let rep = viewToCapture.bitmapImageRepForCachingDisplayInRect(viewToCapture.bounds)!
viewToCapture.cacheDisplayInRect(viewToCapture.bounds, toBitmapImageRep: rep)
let img = NSImage(size: viewToCapture.bounds.size)
img.addRepresentation(rep)
swift 3 let rep = viewToCapture.bitmapImageRepForCachingDisplay (en: viewToCapture.bounds)! viewToCapture.cacheDisplay (en: viewToCapture.bounds, a: REP) vamos img = NSImage (tamaño: viewToCapture.bounds.size) img.addRepresentation (rep) – spacecash21
Nota: no siempre funciona correctamente. Estoy emitiendo una etiqueta que tiene un sistema de coordenadas rotado. – Ash
Esta fue la mejor solución para mí, a diferencia de la versión en pdf, esto también explica las sombras y las esquinas redondeadas. A diferencia de la versión de tapa de ventana, esto solo captura la vista actual. Obj Código C: '- (NSImage *) screenCap { \t NSBitmapImageRep * bitmap = [self bitmapImageRepForCachingDisplayInRect: self.bounds]; \t [self cacheDisplayInRect: self.bounds toBitmapImageRep: bitmap]; \t NSImage * result = [[NSImage alloc] initWithSize: self.bounds.size]; \t [resultado addRepresentation: bitmap]; \t resultado de devolución; } ' – codrut
- 1. ¿Cómo se toma una captura de pantalla correctamente con xlib?
- 2. Captura de pantalla de la toma
- 3. Toma de captura de pantalla de una página web programáticamente
- 4. ¿Cómo se toma una captura de pantalla de un sitio web a través del código .Net?
- 5. Toma de captura de pantalla de Android OpenGL
- 6. Toma de captura de pantalla de la pantalla actual del dispositivo
- 7. Captura de pantalla de la segunda pantalla
- 8. Captura de pantalla de la pantalla actual
- 9. HTML5 video captura de pantalla
- 10. ¿Cómo tomar una captura de pantalla de una página web?
- 11. Pantalla de captura
- 12. iOS Captura parte de la pantalla
- 13. Captura de pantalla de una ventana usando python
- 14. Obtenga una captura de pantalla de una página de ASP.Net
- 15. Captura de pantalla en Haskell?
- 16. Captura de una captura de pantalla de un video incrustado usando C#
- 17. Toma de captura de pantalla del objeto flash usando Selenium con Webdriver
- 18. Captura de pantalla en android
- 19. ¿Cómo tomar la captura de pantalla programáticamente?
- 20. Android OpenGL Captura de pantalla
- 21. ¿Se está realizando una notificación o detección de una captura de pantalla?
- 22. ¿Cómo crear una captura de pantalla de QWidget?
- 23. ¿Cómo subir una captura de pantalla usando html2canvas?
- 24. C#: cómo tomar una captura de pantalla de una parte de la pantalla
- 25. Cómo tomar una captura de pantalla en OpenGL
- 26. ¿Cómo se voltea el sistema de coordenadas de un NSView?
- 27. Sin iPhone, ¿cómo tomar una captura de pantalla con XCode?
- 28. ¿Cómo tomar una captura de pantalla con unidad HTML?
- 29. Cómo tomar una captura de pantalla con FireMonkey (multiplataformas)
- 30. Centrar una NSView dentro de un NSScrollView
Qué dejase métodos no funciona y por qué? –