• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

iphone - 在屏幕的某些部分打开 zbar 扫描仪

[复制链接]
菜鸟教程小白 发表于 2022-12-12 13:34:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个应用程序,我在其中使用 ZBar 实现了二维码扫描。

现在我还在相机上实现了覆盖。

问题是虽然我做了一个覆盖,相机扫描整个屏幕的一部分。

我想在屏幕的某个部分进行扫描。

这是我的代码,

    reader = [ZBarReaderViewController new];
    isCameraStarted = YES;

    reader.readerDelegate = self;
    reader.supportedOrientationsMask = ZBarOrientationMaskAll;

    //Add flash Camera
    if(isTorchOn==NO)
        reader.cameraFlashMode=UIImagePickerControllerCameraFlashModeOff;
    else
        reader.cameraFlashMode=UIImagePickerControllerCameraFlashModeOn;

    ZBarImageScanner *scanner = reader.scanner;
    // TODO: (optional) additional reader configuration here

    // EXAMPLE: disable rarely used I2/5 to improve performance
    [scanner setSymbology: ZBAR_I25
                   config: ZBAR_CFG_ENABLE
                       to: 0];

    [scanner setSymbology:ZBAR_NONE config:ZBAR_CFG_ENABLE to:0];
    [scanner setSymbology:ZBAR_QRCODE
                   config:ZBAR_CFG_ENABLE
                       to:1];
    reader.cameraOverlayView = vw;
        reader.showsZBarControls=NO;
    [self presentViewController:reader animated:NO completion:nil];
    [reader release];

在中间的方形方框中打开相机

这是我想要的输出:



Best Answer-推荐答案


尝试使用 ZBarReaderView,而不是使用 ZBarReaderViewController。 下面的链接对我有用。

- (void)startScanning{
NSLog(@"Scanning..");
ZBarReaderView*reader = [ZBarReaderView new];
ZBarImageScanner * scanner = [ZBarImageScanner new];
[scanner setSymbology: ZBAR_I25
               config: ZBAR_CFG_ENABLE
                   to: 0];
reader = [reader initWithImageScanner:scanner];
reader.readerDelegate = self;
reader.tracksSymbols = YES;
reader.frame = CGRectMake(10, 100, [self getWidth]- 20, [self getHeight] -200);
reader.torchMode = 0;
dispatch_async(dispatch_get_main_queue(), ^{[reader start];});

[self.container addSubview:reader];
}

-(void) readerViewZBarReaderView *)readerView didReadSymbolsZBarSymbolSet * )symbols fromImage UIImage *)image
{
for (ZBarSymbol *sym in symbols)
    {
    NSLog(@"Scanned data: %@", sym.data);
    break;
}
[readerView stop];
// action todo
}

希望能帮到你。

关于iphone - 在屏幕的某些部分打开 zbar 扫描仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18182718/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap