2016-05-03 3 views
0

Я использую пример из here к построенному сканирования QRCode приложений и работать прекрасно для бумаги, или нормальный светSwift Avfoundation: QRcode ошибка сканирования при ярком

в нормальном состоянии, QRCode это выглядит ниже: (линия толще и эти точки будут держаться близко друг к другу) enter image description here

Моя проблема: когда окружающий яркий, и телефон ярко (особенно от сетчатки дисплей как SamsungEdge 7), сканирование qrcode становится таким, как показано ниже. Невозможно прочитать qrcode больше! (линия становится тоньше, а многоточие становятся все меньше и дальше друг от друга) enter image description here

любое предложение или где/как я могу исправить такую ​​ошибку? потому что ZXING позволяет сканировать даже в моем сценарии «ошибка».

Заранее благодарен!

+0

Существует ZXing порт Objective-C, который вы можете попробовать https://github.com/TheLevelUp/ZXingObjC – kennytm

+0

@kennytm после тестирования, я подумайте, что проблема не в сканировании, а в самой камере ... ниже, как я делаю обходной путь. – zuyao88

+0

@kennytm Спасибо, я использую быстро. и теперь с использованием Zbar (также в obj-c) ... учебное пособие по переходу zbar в swift: https://gist.github.com/wszdwp/205dcccbf096c21f6288 – zuyao88

ответ

0

После запроса и поиска. (полезная информация: https://www.objc.io/issues/21-camera-and-photos/camera-capture-on-ios/)

Эта проблема связана с экспозицией камеры, яркостью, контрастностью, коэффициентами баланса белого.

это то, что я добавить, чтобы решить проблему

//zoom + set exposure for bright senario 
    do { 
     try currentDevice.lockForConfiguration() 
    } catch { 
     // handle error 
     return 
    } 
    currentDevice.videoZoomFactor = 1.0 + CGFloat(1) 
    let exposureBias:Float = -0.5 
    currentDevice.setExposureTargetBias(exposureBias) { (time:CMTime) -> Void in 
    } 
    currentDevice.unlockForConfiguration() 
Смежные вопросы