Как взять снимок изображения экрана на Льве Mac OS X
Q: Как я беру снимок изображения экрана на Льве Mac OS X?
A: На Льве Mac OS X способ сделать снимок изображения из экрана путем найма Quartz Display Services.
Удостоверьтесь, что Вы добавляете платформу ApplicationServices в своем проекте XCode и импортируете ApplicationServices/ApplicationServices.h заголовочный файл.
Учитывая дисплей ID ( CGDirectDisplayID введите), можно вызвать CGDisplayCreateImage создать CGImage из всего экрана или CGDisplayCreateImageForRect от прямоугольной части его.
Если Вы всегда получаете от основного дисплея, можно просто передать kCGDirectMainDisplay к любой функции как показано в Перечислении 1. Это - сокращение для указания текущего основного дисплея.
Если Вы могли бы получить от вторичного дисплея, то можно пройти через список активных дисплеев, возвращенных из CGGetActiveDisplayList и найдите тот, который Вы хотите получить. См. Перечисление 2 для примера.
Перечисление 1 , Создающее изображение из всего основного дисплея
CGImageRef image = CGDisplayCreateImage(kCGDirectMainDisplay); |
Перечисление 2 , Создающее изображения из многократных дисплеев
CGDisplayCount displayCount;
CGDirectDisplayID displays[32];
// grab the active displays
CGGetActiveDisplayList(32, displays, &displayCount);
// go through the list
for (int i=0; i<displayCount; i++)
{
// make a snapshot of the current display
CGImageRef image = CGDisplayCreateImage(displays[i]);
// do something with the snapshot image
} |
Проверьте специализированный пример кода, ScreenSnapshot, для получения дополнительной информации. Это демонстрирует, как использовать Quartz Display Services для получения изображения, содержащего содержание любого из подключенных дисплеев, и позволяет пользователю сохранять образ к файлу на диске.
История версии документа
| Дата | Примечания |
|---|---|
| 10.08.2011 | Исправленный ссылка. Добавленная информация о выборке ScreenSnapshot. |
| 13.05.2011 | Новый документ, показывающий, как взять снимок изображения экрана на Льве Mac OS X |