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