iOS Câmera — Parte 2

Salvando e Compartilhando suas Fotos Customizadas

Apple Developer Academy | Mackenzie
3 min readAug 18, 2017

--

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

--

--