我通过以下代码裁剪Zbar的扫描区域:
- (void)startScanning
{
NSLog(@"Scanning..");
reader = [AACZBarViewController new];
reader.readerDelegate=self;
reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationPortrait);
reader.showsZBarControls = NO;
CGFloat x,y,w,h;
x =0;
y =0.25;
w=1;
h=0.50;
reader.scanCrop = CGRectMake(x,y,w,h); //Crop scan region
reader.cameraOverlayView = [self myOverlay];
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology: ZBAR_I25 config: ZBAR_CFG_ENABLE to: 0];
[self presentViewController:reader animated:YES completion:nil];
}然而,问题是该程序仍然使用整个屏幕区域来查找条形码-而不是中间的50%。我不认为问题出在reader.scanCrop方法上,但至于真正的罪魁祸首是什么,我无法理解。
编辑:
有没有人?
发布于 2014-09-24 10:25:09
我再次查看了zbar文档,注意到相机上的x轴是垂直的,而不是水平的。现在我将阅读器设置为仅为肖像,但显然这不会以任何方式影响相机。我没有找到改变这一点的方法,但我确实设法裁剪到了我想要的扫描区域。
解决方案:如果您想要下面的扫描区域(x,y,w,h),那么您可以通过交换x和y以及宽度和高度来设置矩形,因此可以这样做(y,x,h,w)。它似乎不能精确地裁剪到边界框,但对于我的目的来说已经足够近了。
https://stackoverflow.com/questions/25478714
复制相似问题