【问题标题】:How do I use the scanCrop property of a ZBar reader?如何使用 ZBar 阅读器的 scanCrop 属性?
【发布时间】:2011-08-07 02:33:28
【问题描述】:

我正在使用 ZBar SDK for iPhone 来扫描条形码。我希望阅读器只扫描特定的矩形而不是整个视图,为此需要将阅读器的 scanCrop 属性设置为所需的矩形。

我很难理解必须设置的矩形参数。

如果在纵向视图中它的坐标是:CGRectMake( A, B, C, D ),有人可以告诉我应该给出什么 rect 作为参数?

【问题讨论】:

    标签: objective-c iphone ios4 barcode-scanner scanning


    【解决方案1】:

    来自zbar的ZBarReaderView Class documentation

    CGRect 扫描裁剪

    将被扫描的视频图像区域,以标准化图像坐标。请注意,视频图像处于横向模式(默认 {{0, 0}, {1, 1}})

    所有参数的坐标都是标准化的浮点数,从 0 到 1。因此,在标准化值中,theView.width 是 1.0,theView.height 是 1.0。因此,默认的矩形是 {{0,0},{1,1}}。

    例如,如果我有一个名为scanView 的透明UIView 作为readerView 的扫描区域。而不是这样做:

    readerView.scanCrop = scanView.frame;
    

    我们应该这样做,首先标准化每个参数:

    CGFloat x,y,width,height;  
    x = scanView.frame.origin.x / readerView.bounds.size.width;
    y = scanView.frame.origin.y / readerView.bounds.size.height;
    width = scanView.frame.size.width / readerView.bounds.size.width;
    height = scanView.frame.size.height / readerView.bounds.size.height;
    
    readerView.scanCrop = CGRectMake(x, y, width, height);
    

    它对我有用。希望对您有所帮助。

    【讨论】:

    • 如果您的阅读器是纵向而不是横向,请参阅this post
    【解决方案2】:

    您可以通过这样做来使用扫描裁剪区域。 reader.scanCrop = CGRectMake(x,y,width,height); 例如。 reader.scanCrop = CGRectMake(.25,0.25,0.5,0.45); 我使用了它,它为我工作。

    【讨论】:

      【解决方案3】:

      加油!!!这是调整裁剪区域的正确方法;

      我在这上面浪费了很多时间;

      readerView.scanCrop = [self getScanCrop:cropRect readerViewBounds:contentView.bounds]; - (CGRect)getScanCrop:(CGRect)rect readerViewBounds:(CGRect)rvBounds{ CGFloat x,y,width,height; x = rect.origin.y / rvBounds.size.height; y = 1 - (rect.origin.x + rect.size.width) / rvBounds.size.width; width = rect.size.height / rvBounds.size.height; height = rect.size.width / rvBounds.size.width; return CGRectMake(x, y, width, height); }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多