Этот фрагмент кода вернет CGImageRef, который содержит все, что показано на рабочем столе для данного прямоугольника. Это требует инфраструктуры ApplicationServices. Координаты экрана перевернуты, и начало координат находится в верхнем левом углу экрана. В этом случае ссылка на изображение будет принадлежать вызывающей стороне и должна будет быть освобождена с CGImageRelease
, когда вызывающая сторона закончит с ней.
#import <ApplicationServices/ApplicationServices.h>
CGImageRef createScreenCapture(CGRect rect) {
CGImageRef image = CGWindowCreateImage(
rect,
kCGWindowListOptionOnScreenOnly,
0,
kCGWindowImageDefault);
return image;
}