Как вы можете захватить NSImage экрана в Cocoa? Мне нужно знать самый быстрый способ, потому что я пытаюсь сделать приложение для скрининга.Захват какао-экрана?
ответ
См. Образец OpenGLCaptureToMovie. Добавлю, что вместо таймера вы должны использовать Quartz Display Services' refresh-notification APIs.
Обратите внимание, что пример OpenGL не создает объекты NSImage. Нет смысла делать это, так как вы не можете помещать их в фильм. Ну, я думаю, вы могли бы назначить NSImage за указанное время кадра, но я не знаю, насколько хорошо это будет работать с сжатием.
Говоря об компрессии, используйте кодек Animation для максимального качества записи. Это обеспечивает достаточно достаточное сжатие, чтобы не перегружать диск и, конечно же, не будет перегружать процессоры. Затем вы можете предложить варианты конвертации, такие как H.264, H.264 для iPhone и H.264 для iPod. Вы также должны позволить пользователю сохранять исходный файл; некоторые сайты, такие как Vimeo, принимают его и разрешают посетителям загружать его.
- 1. Захват экрана, как DOM-захват с javascript?
- 2. Java - Захват System.err.println или Захват PrintStream
- 3. Stripe Connect - возможно ли захват и захват?
- 4. Захват StackOverflowException
- 5. Захват прямоугольника
- 6. Захват аудиозахвата
- 7. Захват формы
- 8. OutputDebugString захват
- 9. Захват мыши
- 10. Захват GridSplitter
- 11. Захват аудиовыхода
- 12. Захват «xxxxxxxxxx»
- 13. Захват клавиш
- 14. Захват фотографии
- 15. Захват STDIN
- 16. Захват sockpuppets
- 17. Захват видеокадра
- 18. Ebay API - захват пользовательских продуктов и захват отдельных деталей продукта
- 19. Захват событий в ngTable
- 20. Захват определенных частей строки
- 21. Захват TabText в фрагменте
- 22. Захват видео с AVFoundation
- 23. Захват сеанса на практике
- 24. Захват повторяющегося поднабора
- 25. Захват исключения в Async.Start?
- 26. ASP.NET - Захват снимка экрана
- 27. Delphi EOutOfResources Захват экрана
- 28. SQL Захват регистрации
- 29. Захват только имени хоста
- 30. Захват сайта Joomla
Старый ответ старый. Сегодня я бы использовал API CGWindowList для выполнения захвата и переключился на OpenGL, только если CGWindowList окажется слишком медленным. –
Спасибо @Peter за это обновление от старого ответа. Я хотел сделать запись с экрана с открытым исходным кодом, есть ли какие-либо новые elbaboration yo ucan add? :) – Noitidart
@Noitidart: https://developer.apple.com/library/mac/documentation/Carbon/Reference/CGWindow_Reference/ –