将CGImageRef转换为NSData会增加Mac应用程序中的应用程序内存使用量



我正在创建一个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];

如果我做错了,请告诉我,谢谢

CGImageRelease(screenShot)呢?我认为这应该会有所帮助。完成后调用它。似乎您没有释放收到的内存CGWindowListCreateImage

最新更新