Мне нужно взять содержимое NSView
и поместить их в NSImage
, для экспериментального проекта. Это возможно? Я сделал несколько Googling, попробовал два метода, которые я нашел, но они на самом деле не работали. Какие-либо предложения?Как сделать снимок экрана для NSView?
ответ
[[NSImage alloc] initWithData:[view dataWithPDFInsideRect:[view bounds]]];
спасибо. – Debashis
+1 Стоит отметить, что, хотя это правильный путь в целом, есть случаи, когда он не будет работать, например, такие как NSOpenGLView, которые имеют свой собственный контекст рендеринга OpenGL. В этом случае вам нужно получить данные о пикселях напрямую и создать из него растровое изображение, которое немного менее аккуратно. – walkytalky
Obs: тени и cornerRadius будут проигнорированы – codrut
Я thinkt, Debashis думает больше вещей, как http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaDrawingGuide/Images/Images.html#//apple_ref/doc/uid/TP40003290-CH208-BCIIIJFB
Приветствия
ссылка на данный момент отключена – Supertecnoboff
let dataOfView = view.dataWithPDFInsideRect(view.bounds)
let imageOfView = NSImage(data: dataOfView)
С WWDC 2012 Session 245 (в переводе на 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 (in: viewToCapture.bounds)! viewToCapture.cacheDisplay (в: viewToCapture.bounds, чтобы: реп) пусть IMG = NSImage (размер: viewToCapture.bounds.size) img.addRepresentation (реп) – spacecash21
Примечание: не всегда работает правильно. Я выпустил ярлык с вращающейся системой координат. – Ash
Это было лучшее решение для меня, в отличие от pdf-версии, это также объясняет тени и закругленные углы. В отличие от версии окна, это только фиксирует текущее представление. Obj C-код: '- (NSImage *) ScreenCap { \t NSBitmapImageRep * растровый = [само bitmapImageRepForCachingDisplayInRect: self.bounds]; \t [self cacheDisplayInRect: self.bounds toBitmapImageRep: bitmap]; \t NSImage * result = [[NSImage alloc] initWithSize: self.bounds.size]; \t [result addRepresentation: bitmap]; \t результат возврата; } ' – codrut
- 1. как сделать снимок экрана?
- 2. Как сделать снимок экрана ImageView?
- 3. C: сделать снимок экрана
- 4. Сделать снимок экрана
- 5. Как сделать снимок с экрана?
- 6. Как сделать снимок экрана терминала
- 7. Как сделать снимок экрана для перехода
- 8. Как сделать снимок экрана для каждого приложения?
- 9. сделать снимок экрана
- 10. Pyqt сделать снимок экрана определенной области экрана
- 11. GWT: сделать снимок экрана виджета
- 12. Android сделать снимок экрана (ROOT)
- 13. Способ сделать снимок экрана быстрее
- 14. Невозможно сделать полноэкранный снимок экрана
- 15. Xamarin Android сделать снимок экрана
- 16. сделать снимок экрана (с корнем)
- 17. Как сделать снимок экрана при воспроизведении видео?
- 18. Как сделать снимок экрана за полноэкранным способом?
- 19. Как сделать снимок экрана программно с Lollipop
- 20. Как сделать снимок экрана с помощью Sikuli?
- 21. Как сделать снимок экрана с FireMonkey (многоплатформенные)
- 22. Как сделать снимок экрана в WP8
- 23. Как сделать снимок экрана с помощью VBA?
- 24. Как сделать снимок экрана с указанного сайта?
- 25. Как сделать снимок экрана в iPhone Cocos2D?
- 26. Как сделать качественный снимок экрана/сохранить изображение?
- 27. Как сделать снимок экрана с сайта MVC?
- 28. как сделать снимок экрана всей веб-страницы?
- 29. Как сделать снимок экрана видимой области UIScrollView?
- 30. Как сделать снимок экрана из HTML-формы?
Какие методы Бесполезный Работа и почему? –