if ([self.delegate respondsToSelector:@selector(decoder:didDecodeImage:usingSubset:withResult:)]) {
[self.delegate decoder:self didDecodeImage:self.image usingSubset:self.subsetImage withResult:result];
}
+
+ [result release];
}
- (void)failedToDecodeImage:(NSString *)reason {
#endif
self.subsetImage = [UIImage imageWithCGImage:subsetImageRef];
- // for debug purposes.
-// UIImageWriteToSavedPhotosAlbum(self.subsetImage, nil, nil, nil);
-
CGImageRelease(subsetImageRef);
CGContextRelease(ctx);
NSString *resultString = [NSString stringWithCString:cString
encoding:NSUTF8StringEncoding];
- decoderResult = [TwoDDecoderResult resultWithText:resultString
- points:points];
+ decoderResult = [[TwoDDecoderResult resultWithText:resultString
+ points:points] retain];
} catch (ReaderException &rex) {
NSLog(@"failed to decode, caught ReaderException '%s'",
rex.what());
}
}
#endif
-
+
+ free(subsetData);
+ self.subsetData = NULL;
+
if (decoderResult) {
[self performSelectorOnMainThread:@selector(didDecodeImage:)
withObject:decoderResult
withObject:NSLocalizedString(@"Decoder BarcodeDetectionFailure", @"No barcode detected.")
waitUntilDone:NO];
}
-
- free(subsetData);
- self.subsetData = NULL;
}
[pool drain];
#ifdef DEBUG
}
- (void) decodeImage:(UIImage *)i {
- [self decodeImage:i cropRect:CGRectMake(0.0f, 0.0f, image.size.width, image.size.height)];
+ [self decodeImage:i cropRect:CGRectMake(0.0f, 0.0f, i.size.width, i.size.height)];
}
- (void) decodeImage:(UIImage *)i cropRect:(CGRect)cr {