2016-05-03 2 views
0

Ich bin ein qrcode Scan-Anwendungen am Beispiel von here gebaut verwenden und es für Papier perfekt funktionieren, oder normalem LichtSwift AVFoundation: QRcode Scan-Fehler bei hellem Umgebungs

in einem normalen Zustand, die qrcode ist aussieht unten: (die Linie dicker sind und diese Punkte nahe beieinander sind, kleben) enter image description here

Mein Problem:, wenn die Umgebungs hell ist, und das Telefon ist hell (vor allem von Retina-Display wie SamsungEdge 7), Der gescannte QR Code wird wie folgt aussehen. Der QRCode kann nicht mehr gelesen werden! (werden die Linie dünner und die Punkte kleiner werden und weiter auseinander) enter image description here

jede Anregung oder wo/wie kann ich diese Art von Fehler beheben? weil ZXING sogar in meinem "Fehler" -Szenario scannen kann.

Vielen Dank im Voraus!

+0

Es gibt einen ZXing Port Objective-C zu lösen, die Sie https://github.com/TheLevelUp/ZXingObjC – kennytm

+0

@kennytm nach dem Test kann versuchen, i denke das problem ist nicht beim scannen sondern ist bei der kamera selbst .... unten ist wie ich das umgehen kann. – zuyao88

+0

@kennytm Danke, ich benutze swift. und jetzt mit Zbar (auch in obj-c) ... Tutorial von Bridging zbar in swift: https://gist.github.com/wszdwp/205dcccbf096c21f6288 – zuyao88

Antwort

0

Nach fragen und suchen herum. (nützliche Info: https://www.objc.io/issues/21-camera-and-photos/camera-capture-on-ios/)

Dieses Problem bezieht sich auf die Belichtung der Kamera, Helligkeit, Kontrast, Weißabgleich Faktoren.

das ist, was ich hinzufügen, das Problem

//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()