Ios 如何在具有覆盖的自定义大小ZBarReaderView上使用scanCrop属性 我在视图控制器中嵌入了一个ZBARRealReVIEW,我想把扫描的范围限制在视图中间的一个正方形。我已将相机的分辨率设置为1280x720。假设设备处于纵向模式,我只使用cameraViewBounds计算标准化坐标,cameraViewBounds是readerView的边界,overlayViewFrame是橙色框的帧,如本截图所示-。以下是我到目前为止的情况: self.cameraView.session.sessionPreset = AVCaptureSessionPreset1280x720; //Set CameraView's Frame to fit the SideController's Width CGPoint origin = self.cameraView.frame.origin; float cameraWidth = self.view.frame.size.width; self.cameraView.frame = CGRectMake(origin.x, origin.y, cameraWidth, cameraWidth); //Set CameraView's Cropped Scanning Rect CGFloat x,y,width,height; CGRect cameraViewBounds = self.cameraView.bounds; CGRect overlayViewFrame = self.overlay.frame; y = overlayViewFrame.origin.y / cameraViewBounds.size.height; x = overlayViewFrame.origin.x / cameraViewBounds.size.width; height = overlayViewFrame.size.height / cameraViewBounds.size.height; width = overlayViewFrame.size.width / cameraViewBounds.size.width; self.cameraView.scanCrop = CGRectMake(x, y, width, height); NSLog(@"\n\nScan Crop:\n%@", NSStringFromCGRect(self.cameraView.scanCrop));

Ios 如何在具有覆盖的自定义大小ZBarReaderView上使用scanCrop属性 我在视图控制器中嵌入了一个ZBARRealReVIEW,我想把扫描的范围限制在视图中间的一个正方形。我已将相机的分辨率设置为1280x720。假设设备处于纵向模式,我只使用cameraViewBounds计算标准化坐标,cameraViewBounds是readerView的边界,overlayViewFrame是橙色框的帧,如本截图所示-。以下是我到目前为止的情况: self.cameraView.session.sessionPreset = AVCaptureSessionPreset1280x720; //Set CameraView's Frame to fit the SideController's Width CGPoint origin = self.cameraView.frame.origin; float cameraWidth = self.view.frame.size.width; self.cameraView.frame = CGRectMake(origin.x, origin.y, cameraWidth, cameraWidth); //Set CameraView's Cropped Scanning Rect CGFloat x,y,width,height; CGRect cameraViewBounds = self.cameraView.bounds; CGRect overlayViewFrame = self.overlay.frame; y = overlayViewFrame.origin.y / cameraViewBounds.size.height; x = overlayViewFrame.origin.x / cameraViewBounds.size.width; height = overlayViewFrame.size.height / cameraViewBounds.size.height; width = overlayViewFrame.size.width / cameraViewBounds.size.width; self.cameraView.scanCrop = CGRectMake(x, y, width, height); NSLog(@"\n\nScan Crop:\n%@", NSStringFromCGRect(self.cameraView.scanCrop));,ios,objective-c,zbar,Ios,Objective C,Zbar,正如您在屏幕截图中看到的,蓝色框是scanCrop rect,我希望能够让蓝色框与橙色框匹配。在计算扫描裁剪的标准化值时,是否需要考虑图像的分辨率或图像大小 我无法理解spadix在sourceforge的评论中解释了什么: “因此,假设您的示例矩形代表纵向方向的屏幕点,并使用默认的640x480相机分辨率,您的扫描裁剪矩形将为{75/w,38/320.,128/w,244/320.},其中w=480/(320*640.)是屏幕点中图像的主要尺寸。” “假设您的坐标是指纵向方向上的点,使用默认相

正如您在屏幕截图中看到的,蓝色框是scanCrop rect,我希望能够让蓝色框与橙色框匹配。在计算扫描裁剪的标准化值时,是否需要考虑图像的分辨率或图像大小

我无法理解spadix在sourceforge的评论中解释了什么: “因此,假设您的示例矩形代表纵向方向的屏幕点,并使用默认的640x480相机分辨率,您的扫描裁剪矩形将为{75/w,38/320.,128/w,244/320.},其中w=480/(320*640.)是屏幕点中图像的主要尺寸。” “假设您的坐标是指纵向方向上的点,使用默认相机图像大小,位于默认位置,并考虑到相机图像已旋转: 扫描裁剪=CGRectMake(50/426,1-(20+250)/320,150/426,250/320)。”

他使用426和320的值,我假设这与图像大小有关,但在他的一条评论中,他提到分辨率是640x480。如何考虑图像大小以计算扫描裁剪的正确rect