Технические вопросы и ответы QA1741

Как взять снимок изображения экрана на Льве 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