我正在使用AVCapture:Session,Device,DeviceInput,MetadataOutput和VideoPreviewLayer来扫描条形码。我在阅读倒置条形码(黑色背景上的白条)时遇到了一些麻烦。
我尝试通过从metadataObjects
方法获取captureOutput
中的字节并使用byte = ~byte
来反转实际条形码数据的字节代码。由于metadataObject无法正确转换为NSData对象,因此效果不佳。
我希望这会反转条形码数据,但这是一团糟。
我只是不知道该怎么做,我是否必须通过过滤器传递图像然后解码数据或什么。
有人能指出我正确的方向吗?
_session = [[AVCaptureSession alloc] init];
_device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error = nil;
_input = [AVCaptureDeviceInput deviceInputWithDevice:_device error:&error];
if (_input) {
[_session addInput:_input];
} else {
NSLog(@"Error: %@", error);
}
_output = [[AVCaptureMetadataOutput alloc] init];
[_output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
[_session addOutput:_output];
_output.metadataObjectTypes = [_output availableMetadataObjectTypes];
_prevLayer = [AVCaptureVideoPreviewLayer layerWithSession:_session];
_prevLayer.frame = self.view.bounds;
_prevLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.view.layer addSublayer:_prevLayer];
[_session startRunning];
这是我初始化AVCaptureSession
,AVCaptureDevice
,AVCaptureDeviceInput
,AVCaptureMetadataOutput
和AVCaptureVideoPreviewLayer
的方式。
我现在正在尝试将GPUImage
框架实施到我的项目中,但是当我尝试导入主头文件时,我一直找到"GPUImage.h" file not
。