2014-10-27 12 views

risposta

0

Questi richiedono due tecniche separate.

È importante capire la differenza tra i due.

Il primo, che modifica il livello di anteprima del video, richiede la regolazione della gravità del video. Si noti che questo può essere cambiato come segue, nel contesto di schermo intero:

[Swift 3]

previewView.videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 

In sostanza, si stanno modificando i confini della vostra mirino. Tuttavia, non stai fornendo alcun effetto sulla tua foto catturata.

Ora, per la tua situazione di riempimento di un quadrato, è necessario definire i limiti del livello, quindi utilizzare AVLayerVideoGravityResize.

Per quanto riguarda la modifica del foto catturata:

Il mio metodo è semplicemente prendendo i dati di immagine restituiti, convertendolo in un UIImage, quindi l'esecuzione di un'operazione delle colture. Il fatto è che la tua foto catturata sarà sempre la risoluzione e le proporzioni standard dell'iPhone. Dovrai prendere i dati dell'immagine e convertirli ad un certo punto per rimuovere i limiti.

In verità, non lo faccio più localmente perché è un problema. Se comunichi con una API REST, prenderei in considerazione l'esecuzione di operazioni di ritaglio sul lato server - è altrettanto semplice e meno spese generali per l'utente. Certo, potrebbe non essere adatto alla tua situazione.

Problemi correlati