BcmCamera

The SDK camera configuration struct (BcmCamera) is an optional interface. It allows you to configure camera specific parameters. The interface is for an object to be assigned to BcmScanConfig's camera property.

Interface

Swift:

public class BcmCameraConfig {

    /**
     * Set the preferred frame resolution of the Camera.
     */
    public enum CameraResolution {
        case FULL_HD
        // case WQ_HD // not supported
        case _4K

        func get() -> AVCaptureSession.Preset {
            switch self {
            case .FULL_HD:
                return AVCaptureSession.Preset.hd1920x1080
            case ._4K:
                return AVCaptureSession.Preset.hd4K3840x2160
            }
        }
    }

    /**
     * this factor is used for the fixed focus distance.
     * By default (0.0), the nearest point will used 
     * for the fixed focus distance.
     * this can be changed to a value in the range [0.0, 1.0].
     */
    let focusLensPositionFactor: Float?

    /**
     * danger, W.R.! Attempting to use a too large frame resolution 
     * could exceed the camera
     * bus' bandwidth limitation, result in gorgeous previews 
     * but the storage of garbage capture data.
     */
    let frameResolution: CameraResolution

    /**
     * the camera dpi value is mandatory for the correct image scaling.
     * the dpi value is different for each device and depends 
     * on the device camera.
     * there are pre-calculated dpi values for the most used devices in the SDK.
     * the device can be manually calibrated 
     * with the calibration API (BcmSdkScanController)
     */
    let dpi: Float?

    /**
     * set input image rotation. This parameter effects the finger detection.
     * 180.0, indicates the right side and 0 the left side of the phone.
     * Default value is 180.0
     */
    let imageInputRotation: Float

    /**
     * set to 1.0 to use the default software zoom. Valid range is in [1.0, 5.0]
     */
    let softwareZoomFactor: CGFloat

    /**
     * whether to turn on the torch/flash automatically 
     * for making finger easily readable.
     */
    let isTorchInitiallyOn: Bool

    /**
     * Internal
     */
    /**
     * set to false to use continuous auto focus
     * the configuration cannot be overwritten
     */
    let focusLensPositionOn: Bool = true

    public init(
        frameResolution: CameraResolution = CameraResolution._4K,
        focusLensPositionFactor: Float? = nil,
        dpi: Float? = nil,
        imageInputRotation: Float = 0,
        softwareZoomFactor: CGFloat = 1.0,
        isTorchInitiallyOn: Bool = true
    ) {
        self.frameResolution = frameResolution
        self.focusLensPositionFactor = focusLensPositionFactor
        self.dpi = dpi
        self.imageInputRotation = imageInputRotation
        self.softwareZoomFactor = softwareZoomFactor
        self.isTorchInitiallyOn = isTorchInitiallyOn
    }
}

Example

Swift:

let bcmCamera = BcmCamera(
            frameResolution: BcmCamera.CameraResolution._4K,
            isTorchInitiallyOn: true)

Initialize the camera config in the BcmScanConfig struct

Swift:

let bcmScanConfig = BcmScanConfig(
        camera: bcmCamera)

See Also

results matching ""

    No results matching ""