Captura de Imagens com Power Apps e OneDrive

Uma das melhores potencialidades que podemos ter quando utilizamos uma aplicação é registar uma captura em arquivo e o Power Apps, no desenvolvimento de aplicações para ecrã (Canvas Apps) fornece-nos controlos que permite utilizar esse tipo de interação com a aplicação com bastante facilidade.

Neste caso do artigo em questão vamos utilizar a integração também do Power Apps com o Power Automate para ligar a aplicação ao OneDrive e armazenar a imagem capturada numa pasta.

Iniciar a aplicação

Para iniciarmos a aplicação vamos aceder ao endereço make.powerapps.com e acedemos ao menu lateral à opção Criar.

Vamos criar uma aplicação de raiz, começando com uma tela em branco.

De seguida escolhemos o tipo de aplicação que vamos criar, neste caso uma aplicação baseada em ecrã, Aplicação de Tela [Canvas App].

Neste cenário específico vou optar pelo layout de telemóvel, pois para capturar uma foto podemos utilizar o potencial da camara do nosso telemóvel o dispositivo para armazenar o ficheiro. Assim definimos o nome da aplicação o formato do ecrã e estamos prontos a iniciar!

Definir os controlos que vamos necessitar

Vamos começar por colocar todos os controlos que vamos necessitar para a nossa aplicação. Começamos por um retângulo, que representa o cabeçalho ou o Header da nossa aplicação.

De seguida inserimos uma etiqueta de texto para identificar o nosso ecrã. E colocamos o texto respetivo.

Depois inserimos o controlo de Câmara, que se enquadra nos controlos de Multimédia

E uma Lista Pendente [DropBox] que nos vai permitir selecionar a câmara adequada no dispositivo.

Continuamos com a inserçao de um controlo de Imagem, que irá guardar a imagem capturada pela câmara.

Acrescentamos de seguida uma Caixa de Texto [Text Input] para podermos dar um nome ao ficheiro que vamos guardar.

E por fim um botão que quando ativo, vai correr o fluxo e guardar o ficheiro numa pasta do OneDrive.

Configurar os controlos

Depois de todos os controlos adicionados, necessitamos de fazer algumas configurações aos mesmos. Começando pela Lista Pendente [Drop Box] configuramos a propriedade Items para indicar quais são os itens de escolha na lista pendente. Neste caso acedemos a uma propriedade do controlo da Câmara que é a propriedade AvailableDevices que nos mostra as câmaras disponíveis de acordo com o dispositivo onde estamos. CameraCapturar.AvailableDevices (onde o nome CameraCapturar é o nome que dei ao nosso controlo)

A seguir vamos configurar o controlo de Imagem, onde na propriedade Image, acedemos mais uma vez a uma propriedade do controlo de câmara, neste caso da propriedade Photo: CameraCapturar.Photo (onde o nome CameraCapturar é o nome que dei ao nosso controlo).

Agora vamos configurar a caixa de texto. Aqui apenas temos de retirar o texto da propriedade Default e colocar um texto na propriedade HintText. Este texto basicamente indica para a necessidade do texto que devemos colocar.

Para configurarmos o botão iremos ter mais propriedades. Em primeiro lugar vamos alterar a propriedade DisplayMode, que representa a forma como o botão é apresentado. Aqui vamos definir uma lógica parecida com uma validação de dados: Se houver texto na caixa de texto, o botão está disponível, caso contrário estará indisponível.

A formula aplicada nesta propriedade (DisplayMode) será então a seguinte:

If( IsBlank(txtNomeFicheiro.Text); DisplayMode.Disabled; DisplayMode.Edit)

Capturar a Foto

Para capturar a foto, em modo de teste (Com a tecla ALT) basta efetuar um clique sobre o controlo da câmara. Neste caso imediatamente no controlo de imagem aparece a nossa captura.

Automatizar o fluxo para guardar a imagem

Para automatizarmos o fluxo que vai guardar a imagem no OneDrive, vamos utilizar o Power Automate que neste caso pode ser acedido diretamente através do nosso ecrã de desenvolvimento do Power Apps.

Começamos por criar um fluxo…

Onde neste caso o gatilho do fluxo (Trigger) já está identificado – Power Apps (V2). Nesta nova versão (V2) devemos definir os inputs necessários para interagir com a aplicação.

Neste caso vou definir apenas 2 inputs, um para o ficheiro (Imagem) e outro para o nome dado ao ficheiro. Em primeiro lugar o input para um Ficheiro [File], que será para a imagem.

E de seguida um Input do tipo Texto para colocar o nome do ficheiro.

De seguida acrescentamos um Novo Passo para aceder ao OneDrive onde vamos escolher a opção de criar um ficheiro.

Neste novo passo indicamos o caminho onde a imagem será guardada e adicionamos os inputs que virão da nossa aplicação respetivamente: Imagem e Nome.

Uma nota importante no parâmetro do conteúdo do ficheiro: contentBytes. Este input será importante para converter a nossa imagem no ficheiro arquivado.

Depois de definido o fluxo, vamos dar um nome e gravar!

Executar o fluxo

Para executarmos o fluxo, basta invocá-lo diretamente pelo Power Apps, neste caso vamos utilizar o botão e a propriedade OnSelect para quando pressionamos o mesmo, o fluxo ser executado.

ArmazenarImagem.Run(

    txtNomeFicheiro.Text;

    {

        file: {

            contentBytes: imgCapturada.Image;

            name: txtNomeFicheiro.Text

        }

    }

)

Para guardar a foto, temos de colocar um nome para o ficheiro e pressionar o botão. Desta forma o fluxo será acionado e a imagem guardada na pasta definida por nós no OneDrive.


Comments

Leave a Reply

Discover more from Exceldriven

Subscribe now to keep reading and get access to the full archive.

Continue reading