Преобразование CGImageRef в NSData увеличивает использование памяти приложения в приложении Mac - PullRequest
0 голосов
/ 03 января 2019

Я создаю приложение Mac, в котором я конвертирую CGImageRef в NSData, а затем Base64 и отправляю на сервер.

Это происходит в цикле, и каждый раз, когда изображение, конвертированное в приложении NSData, увеличивается, использование памяти увеличивается.

Вот мой код

CGImageRef screenShot = CGWindowListCreateImage(CGRectInfinite, kCGWindowListOptionOnScreenOnly, kCGNullWindowID, kCGWindowImageDefault);
bitmapRep = [[NSBitmapImageRep alloc] initWithCGImage: screenShot];


NSData *imageData = [bitmapRep representationUsingType:NSPNGFileType properties:nil];;
NSString *base64String = [imageData base64EncodedStringWithOptions:0];

Пожалуйста, дайте мне знать, если я делаю какую-либо ошибку, Спасибо

1 Ответ

0 голосов
/ 03 января 2019

А как насчет CGImageRelease(screenShot)?Я думаю, что это должно помочь.Позвони, когда закончишь.Похоже, вы не освобождаете память, которую вы получили с CGWindowListCreateImage

...