Ich muss den Inhalt einer NSView
nehmen und sie in eine NSImage
, für ein experimentelles Projekt. Ist das möglich? Ich habe etwas gegoogelt, zwei Methoden ausprobiert, die ich gefunden habe - aber sie haben nicht wirklich funktioniert. Irgendwelche Vorschläge?Wie mache ich einen "Screenshot" eines NSView?
Antwort
[[NSImage alloc] initWithData:[view dataWithPDFInsideRect:[view bounds]]];
Vielen Dank. – Debashis
+1 Es ist erwähnenswert, dass, obwohl dies im Allgemeinen der richtige Weg ist, es in einigen Fällen nicht funktionieren wird, zB Ansichten wie 'NSOpenGLView', die ihren eigenen OpenGL Renderkontext haben. In diesem Fall müssen Sie die Pixeldaten direkt abrufen und daraus eine Bitmap-Darstellung erstellen, die etwas weniger sauber ist. – walkytalky
Obs: Schatten und EckenRadius wird ignoriert – codrut
I thinkt wird Debashis mehr Dinge denken wie http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaDrawingGuide/Images/Images.html#//apple_ref/doc/uid/TP40003290-CH208-BCIIIJFB
Grüße
Link ist jetzt gebrochen – Supertecnoboff
let dataOfView = view.dataWithPDFInsideRect(view.bounds)
let imageOfView = NSImage(data: dataOfView)
Von WWDC 2012 Session 245 (übersetzt 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 lassen Sie rep = viewToCapture.bitmapImageRepForCachingDisplay (in: viewToCapture.bounds)! viewToCapture.cacheDisplay (in: viewToCapture.bounds, zu: rep) lassen img = NSImage (Größe: viewToCapture.bounds.size) img.addRepresentation (rep) – spacecash21
Hinweis: immer korrekt funktioniert nicht. Ich habe ein Etikett mit einem gedrehten Koordinatensystem ausgegeben. – Ash
Dies war die beste Lösung für mich, im Gegensatz zu der PDF-Version berücksichtigt dies auch Schatten und abgerundete Ecken. Im Gegensatz zur Window-Cap-Version erfasst dies nur die aktuelle Ansicht. Obj C-Code: '- (NSImage *) ScreenCap { \t NSBitmapImageRep * Bitmap = [self bitmapImageRepForCachingDisplayInRect: self.bounds]; \t [self cacheDisplayInRect: self.bounds zuBitmapImageRep: bitmap]; \t NSImage * Ergebnis = [[NSImage alloc] initWithSize: self.bounds.size]; \t [Ergebnis addRepräsentation: Bitmap]; \t Ergebnis zurückgeben; } ' – codrut
- 1. Wie mache ich einen Screenshot eines Android-Layouts?
- 2. Ich mache einen Screenshot mit C \ GTK
- 3. Wie mache ich einen Screenshot mit Selen und synchronen JS
- 4. Wie mache ich einen Screenshot Bereich Auswahl durch Zeichnen auf dem Desktop, um Screenshot zu machen?
- 5. Wie mache ich einen Screenshot eines einzelnen View-Objekts statt des gesamten Bildschirms?
- 6. Wie mache ich ein NSView in den Vordergrund aller NSViews
- 7. Wie kann ich bestimmte Elemente verstecken, wenn ich einen Screenshot mache?
- 8. Wie programmiere ich einen Screenshot des iPhones?
- 9. Wie mache ich einen Bildkonverter?
- 10. Linux einen Screenshot eines bestimmten Arbeitsbereichs erstellen
- 11. Wie mache ich einen gekrümmten Rand eines Div-Blocks?
- 12. Wie mache ich einen Screenshot auf einem Raspberry Pi mit Debian Squeeze und LXDE?
- 13. Wie mache ich einen Screenshot der aktuellen Aktivität und teile ihn dann?
- 14. Wie kippen Sie das Koordinatensystem eines NSView?
- 15. Wie programmiere ich die Ebene eines NSView programmatisch?
- 16. Tabulatorreihenfolge für NSTextFields eines NSView
- 17. Wie führe ich einen NSView in den Vordergrund aller NSViews?
- 18. Wie erstellt man einen Screenshot eines bestimmten Bereichs?
- 19. Wie Sie einen Screenshot eines UIScrollView, einschließlich Offscreen Teile
- 20. C#: Wie Sie einen Screenshot eines Teils des Bildschirms nehmen
- 21. Wie mache ich einen QVector von Widgets?
- 22. Wie simuliere ich einen Screenshot im iOS-Simulator?
- 23. Wie mache ich einen Slider wie Javascript?
- 24. Screenshot eines Fensters mit Python
- 25. Wie mache ich einen "verzweigten" Conduit?
- 26. Wie mache ich einen (statischen) Initialisiererblock strictfp?
- 27. Wie mache ich einen Einsatz mit einem
- 28. Wie mache ich einen Ordner/Verzeichnis
- 29. Wie mache ich einen Clip (LIDAR-Daten)
- 30. Wie mache ich einen Text als auswählbar?
Welche Methoden didn arbeite nicht und warum? –