Tôi cần lấy nội dung của NSView
và đặt chúng vào một NSImage
, cho một dự án thử nghiệm. Điều này có thể không? Tôi đã làm một số Googling, đã thử hai phương pháp mà tôi tìm thấy - nhưng họ đã không thực sự làm việc. Bất kỳ đề xuất?Làm cách nào để chụp "ảnh chụp màn hình" của NSView?
Trả lời
[[NSImage alloc] initWithData:[view dataWithPDFInsideRect:[view bounds]]];
Cảm ơn bạn rất nhiều. – Debashis
+1 Cần lưu ý rằng, mặc dù đây là một cách đúng đắn nói chung, có một số trường hợp nó sẽ không hoạt động, ví dụ như các khung nhìn như 'NSOpenGLView' có ngữ cảnh dựng hình OpenGL của riêng chúng. Trong trường hợp đó, bạn cần lấy dữ liệu pixel trực tiếp và tạo một đại diện bitmap từ nó, điều này ít gọn gàng hơn một chút. – walkytalky
Obs: shadows và cornerRadius sẽ bị bỏ qua – codrut
tôi thinkt, Debashis đang nghĩ hơn về những thứ như http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaDrawingGuide/Images/Images.html#//apple_ref/doc/uid/TP40003290-CH208-BCIIIJFB
Greetings
liên kết đã bị hỏng – Supertecnoboff
let dataOfView = view.dataWithPDFInsideRect(view.bounds)
let imageOfView = NSImage(data: dataOfView)
Từ WWDC 2012 phiên 245 (dịch sang 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 (in: viewToCapture.bounds, to: rep) let img = NSImage (kích thước: viewToCapture.bounds.size) img.addĐại diện (rep) – spacecash21
Lưu ý: không phải lúc nào cũng hoạt động chính xác. Tôi đang phát hành một nhãn có hệ tọa độ xoay. – Ash
Đây là giải pháp tốt nhất cho tôi, không giống như phiên bản pdf, điều này cũng chiếm các vùng tối và góc tròn. Không giống như phiên bản nắp cửa sổ, điều này chỉ chụp chế độ xem hiện tại. Mã Obj C: '- (NSImage *) screenCap { \t NSBitmapImageRep * bitmap = [self bitmapImageRepForCachingDisplayInRect: self.bounds]; \t [self cacheDisplayInRect: self.bounds toBitmapImageRep: bitmap]; \t Kết quả NSImage * = [[Phân bổ NSImage] initWithSize: self.bounds.size]; \t [kết quả bổ sungĐại diện: bitmap]; \t kết quả trả về; } ' – codrut
- 1. Ảnh chụp màn hình Webdriver
- 2. Chụp ảnh màn hình của Android OpenGL
- 3. Làm cách nào để chụp ảnh màn hình/hình ảnh của trang web bằng Python?
- 4. iOS Ảnh chụp màn hình một phần của màn hình
- 5. Cách chụp một phần của màn hình
- 6. Cách tạo ảnh chụp màn hình của QWidget?
- 7. iPad 3 ảnh chụp màn hình chậm
- 8. html5 chụp màn hình
- 9. Chụp màn hình
- 10. beamer includegraphics với ảnh chụp màn hình
- 11. Ảnh chụp màn hình OpenGL Android
- 12. Chụp ảnh màn hình với C \ GTK
- 13. Chụp màn hình vào một ảnh bitmap
- 14. Làm cách nào để chụp nhanh màn hình trong Java?
- 15. Trì hoãn ảnh chụp màn hình iOS
- 16. Ảnh chụp màn hình bị rò rỉ?
- 17. Lớp phủ màn hình cho ảnh chụp màn hình
- 18. Chụp màn hình màn hình hiện tại của thiết bị
- 19. Làm cách nào để chụp ảnh màn hình của Cửa sổ Hoạt động trong Delphi?
- 20. Làm cách nào để chụp ảnh màn hình của iPhone/iPad bằng Xamarin.iOS (C#)?
- 21. Làm cách nào để bạn chụp Ảnh màn hình của một trang web qua mã .Net?
- 22. Làm cách nào để lập trình chụp ảnh màn hình của ứng dụng trong Linux?
- 23. Chụp màn hình trong android
- 24. Chụp màn hình của điều khiển WebBrowser
- 25. Chụp ảnh màn hình của video được nhúng bằng C#
- 26. Làm cách nào để chụp màn hình hiện tại dưới dạng hình ảnh?
- 27. Ảnh chụp màn hình của Python 2+ (cửa sổ)
- 28. Cách chụp ảnh màn hình bằng VBScript trong TestComplete?
- 29. Chụp ảnh chất lượng thấp của màn hình
- 30. Cách chụp ảnh màn hình bằng HTML-Unit?
Những phương pháp didn 't làm việc và tại sao? –