How to crop scanned barcode using Zbar?

http://pastebin.com/wSVW1tRc

CGRect scanCrop

The region of the video image that will be scanned, in normalized image coordinates. Note that the video image is in landscape mode (default {{0, 0}, {1, 1}})

The coordinates for all of the arguments is in a normalized float, which is from 0 - 1. So, in normalized value, theView.width is 1.0, and theView.height is 1.0. Therefore, the default rect is {{0,0},{1,1}}.

So for example, if I have a transparent UIView named scanView as a scanning region for myreaderView. Rather than do :

readerView.scanCrop = scanView.frame;

We should do this, normalizing every arguments first :

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);

It works for me. Hope that helps.

posted @ 2012-12-07 07:27  阿新  阅读(947)  评论(0编辑  收藏  举报