iOS Câmera — Parte 2
Salvando e Compartilhando suas Fotos Customizadas
Este tutorial é uma continuação do tutorial “iOS Câmera: Adicionando Overlay” que ensina como adicionar overlay na câmera via AVFoundation. Logo, o objetivo é ensinar, de forma simples, como salvar a imagem customizada e como compartilha-la usando a API nativa do iOS. Este tutorial foi escrito utilizando Xcode 8.3.3 com Swift 3.
Passando a imagem salva para uma nova viewcontroller
Partindo de onde paramos no último tutorial, a próxima etapa será salvar a imagem e enviá-la para uma nova view controller com uma nova classe para ela.
Associe a classe criada showpictureViewController
com a nova view controller:
Crie uma segue da primeira view controller para a segunda com a opção show
e dê um identifier para ela, no inspector no quarto ícone, com o nome de showphoto
.
Na showpictureViewController
adicione uma UIImageView
, com seu respectivo outlet, e uma variável image
. Na view didLoad()
acrescente também:
Nesse momento, a segunda view está pronta para receber uma imagem e atribuí-la para a view criada.
Para um ajuste mais otimizado é necessário deixar as views quadradas e com o mesmo tamanho.
Depois disso na ViewController.swift
adicione abaixo do comando para exibir o tamanho da imagem:
Adicione a variável global, var photoReady: UIImage?
, e o método:
Rode novamente o programa e teste o botão de tirar foto. Você deve ter uma sessão da câmera agora e uma view que apresenta a imagem capturada.
Porém, é de se notar que a imagem está um pouco alterada e sem o overlay desejado. Vamos tratar disso agora, juntamente com a adição do overlay na imagem.
Ajustando a imagem e adicionando o overlay
Para isso iremos adicionar uma função que gerará uma única UIImage
com as duas imagens passadas. Adicione a função mixImages
:
Depois de criada a função, devemos chamá-la a fim de juntar a imagem da câmera com o overlay. Logo, devemos substituir:
photoReady = imagedata
Por:
photoReady = mixImages(overlay: img, inImage: imagedata!)
Depois disso, cheque se a imageView
da segunda tela está com o Content Mode em Scale To Fill e rode o programa. A foto tirada pela câmera deverá ser a mesma mostrada na segunda tela.
Compartilhando
Depois que sua ImageView
está da maneira desejada, compartilhá-la será uma questão simples.
Na showpictureViewController.swift
, adicione uma IBAction
para um novo botão. E não esqueça de adicionar no Info.plist uma requisição para utilizar a biblioteca de fotos (Privacy — Photo Library Usage Description), caso o usuário deseje salvar sua foto.
Rode o aplicativo e teste a opção de compartilhar, ela deve estar funcionando perfeitamente.
Código final
Se houver alguma dúvida, segue códigos completos
ViewController.swift
showpictureViewController.swift