我使用UIImage + Resize库在拍摄后直接调整图像大小。
我确实使用以下代码获取内存泄漏:
CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, srcSize.width, srcSize.height), imgRef);
UIImage* resizedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
仪器中的CGDataProviderCreateWithCopyOfData内存泄漏。
我尝试将其添加到@autoreleasepool中,与其他StackOverflow帖子一样。
答案 0 :(得分:1)
注意:您可能已经解决了问题,这个答案可供将来读者解决同样的问题。
我已经弄明白自己的实现是什么(使用GPUImage进行视频分析)。
我需要在autoreleasepool
来电者的呼叫周围添加CGBitmapContextCreateImage
个结果(它还会调用CGDataProviderCreateWithCopyOfData
)。
func run() {
while (parent != nil) {
if semaphore.acquireSemaphore(5000) {
autoreleasepool { // Without this I was leaking images until crash.
parent?.analyseImage(self.sampleBuffer!, lineFinder:finder) //This calls CGBitmapContextCreateImage
}
}
}
thread = nil
}