如何使用ZBar阅读器的scanCrop属性?

Sag*_*ftw 8 iphone objective-c scanning barcode-scanner ios4

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

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

有人可以告诉我,我应该给作为参数什么矩形如果对肖像查看其坐标是:CGRectMake( A, B, C, D )

Ikh*_*aat 23

从zbar的ZBarReaderView类文档:

CGRect scanCrop

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

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

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

readerView.scanCrop = scanView.frame;
Run Code Online (Sandbox Code Playgroud)

我们应该这样做,首先规范每个参数:

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);
Run Code Online (Sandbox Code Playgroud)

这个对我有用.希望有所帮助.