J'avais projet de démarrage qui a utilisé AVFoundation
pour configurer l'appareil photo et cela a fonctionné parfaitement. Maintenant, j'avais besoin de convertir le mécanisme de la caméra en GPUImage
. J'utilise le même focus et la même méthode d'exposition dans les deux projets (qui a fonctionné comme préfet du projet AVFoundation
) mais sur le projet GPUImage
, il ne se focalise pas correctement et est toujours incorrect.GPUImage - La mise au point et l'exposition à la pression ne fonctionnent pas correctement - Manque quelque chose?
Ne pas l'esprit le filtre applique c'est la même sur tous les
Exemple: En haut à droite de l'écran, vous pouvez voir l'agneau. C'est comme ça que ça se concentre + l'exposition.
Mettre en place GPU:
stillCamera = GPUImageStillCamera(sessionPreset: AVCaptureSessionPreset640x480, cameraPosition: .Front)
CorrectPosition = AVCaptureDevicePosition.Front
stillCamera!.outputImageOrientation = .Portrait;
stillCamera?.horizontallyMirrorFrontFacingCamera = true
filter = GPUImageFilter()
stillCamera?.addTarget(filter)
filter?.addTarget(self.view as! GPUImageView)
(self.view as! GPUImageView).fillMode = GPUImageFillModeType.init(2)
méthode TouchBegan:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
var tap : CGPoint!
if let touch = touches.first as UITouch! {
tap = touch.locationInView(self.view)
}
let device: AVCaptureDevice! = self.stillCamera?.inputCamera!
var error: NSError? = nil
do {
try device.lockForConfiguration()
if device.focusPointOfInterestSupported && device.isFocusModeSupported(AVCaptureFocusMode.AutoFocus){
device.focusMode = AVCaptureFocusMode.AutoFocus
device.focusPointOfInterest = tap
}
if device.exposurePointOfInterestSupported && device.isExposureModeSupported(AVCaptureExposureMode.AutoExpose){
device.exposurePointOfInterest = tap
device.exposureMode = AVCaptureExposureMode.AutoExpose
}
device.subjectAreaChangeMonitoringEnabled = monitorSubjectAreaChange
device.unlockForConfiguration()
} catch let error1 as NSError {
error = error1
print(error)
} catch {
fatalError()
}
}
Toutes les idées?
Hey! Merci pour votre commentaire! Je vais le tester aujourd'hui! Question: D'après ce que j'ai compris, j'ai besoin de choisir la bonne "formule" en fonction de ma méthode FillMode? –
Fonctionne! Homme merveilleux! Je vous remercie! –
Merci! Cela m'a sauvé des heures de travail. – thedeveloper3124