1 00:00:02,310 --> 00:00:09,000 Então, vamos começar com a configuração disso. Aqui, iniciar a câmera assíncrona é a função que chamamos 2 00:00:09,570 --> 00:00:13,310 de abrir a câmera, mas na verdade você pode configurar um pouco. 3 00:00:13,340 --> 00:00:19,920 Se você passar um objeto aqui, terá algumas opções que poderá definir e, é claro, os documentos oficiais da exposição para 4 00:00:19,920 --> 00:00:24,520 o seletor de imagens são o lugar para você aprender tudo sobre essas opções. 5 00:00:24,600 --> 00:00:26,930 Agora, as configurações padrão são realmente muito 6 00:00:26,940 --> 00:00:32,940 boas, mas por exemplo, aqui, você pode adicionar edição e configurá-lo como true para obter um editor básico que 7 00:00:32,940 --> 00:00:37,560 permita cortar a imagem, por exemplo, e isso é algo que eu ativarei aqui. 8 00:00:37,620 --> 00:00:44,040 Você também pode definir uma proporção específica em que deseja fazer login, como 16: 9, que será levada 9 00:00:44,040 --> 00:00:46,850 em consideração no seu modo de edição. 10 00:00:46,890 --> 00:00:52,680 Você também pode definir se deseja uma string base64 em vez de um arquivo ou, além do arquivo, devo dizer, o que significa que 11 00:00:52,920 --> 00:00:57,570 você obtém uma string de texto que representa sua imagem, que é bastante grande e não o farei aqui 12 00:00:57,570 --> 00:01:04,740 e você também pode controlar a qualidade e lá, definirei a qualidade como 0. 13 00:01:04,740 --> 00:01:09,780 5, esse deve ser um valor entre 0 e 1, em que um é o valor mais alto possível 14 00:01:09,870 --> 00:01:13,350 e, claro, isso também afeta o tamanho da imagem a partir de então. 15 00:01:13,380 --> 00:01:17,030 Então, você deseja escolher um tamanho ou uma qualidade que faça sentido para o seu aplicativo. 16 00:01:17,040 --> 00:01:23,490 Se você estiver usando apenas a imagem como miniatura, poderá não precisar de imagens em alta resolução. Com isso, isso está configurado e a 17 00:01:23,490 --> 00:01:28,050 questão, claro, é: como obter acesso à imagem que foi tirada? 18 00:01:28,950 --> 00:01:32,520 Bem, lembre-se de que isso é uma promessa ou que isso retorna uma promessa. 19 00:01:32,550 --> 00:01:33,570 Bem, é 20 00:01:33,600 --> 00:01:41,050 claro, portanto, podemos aguardar essa promessa e o resultado que obtemos após a promessa resolvida é realmente a imagem, para 21 00:01:41,130 --> 00:01:47,340 que possamos armazenar essa imagem em uma constante. Uma imagem agora é um objeto com várias informações sobre a 22 00:01:47,340 --> 00:01:48,840 imagem que foi tirada. 23 00:01:49,590 --> 00:01:53,230 Então, aqui, podemos consolar a imagem do log para ver o que há lá. 24 00:01:53,250 --> 00:01:58,150 Vamos salvar isso e testá-lo no Android. Lá, se eu agora for 25 00:01:58,160 --> 00:02:05,930 para essa nova tela aqui, tirar uma foto e eu tirar essa imagem com esta câmera simuladora fictícia eu chego aqui 26 00:02:05,960 --> 00:02:06,460 e 27 00:02:06,470 --> 00:02:09,170 confirmo isso, agora eu vou para este 28 00:02:09,200 --> 00:02:16,760 recorte ou para esta ferramenta de edição porque habilitei a edição, aqui eu tenho esse formato de formato 16: 9 29 00:02:16,880 --> 00:02:22,050 que posso mover e, clicando em cortar, agora posso selecionar isso e, se agora 30 00:02:22,250 --> 00:02:27,280 dermos uma olhada no console, vemos que esse é o objeto que recuperamos. 31 00:02:27,440 --> 00:02:32,930 É um objeto com um campo cancelado que nos diz que isso não foi cancelado, mas que tiramos uma imagem; 32 00:02:32,930 --> 00:02:33,470 portanto, 33 00:02:33,470 --> 00:02:37,880 é um campo que podemos verificar para descobrir se o usuário tirou uma imagem ou se o 34 00:02:37,880 --> 00:02:38,700 processo foi cancelado. 35 00:02:39,290 --> 00:02:41,330 Obtemos a altura da imagem 36 00:02:41,570 --> 00:02:49,310 e a largura, obtemos o tipo que é a imagem e o URI, portanto, um link para o arquivo de imagem. 37 00:02:49,310 --> 00:02:53,570 Agora, ele está em um diretório temporário, que é limpo automaticamente periodicamente; portanto, 38 00:02:53,630 --> 00:02:59,830 é claro que não é o armazenamento ou o caminho em que você deseja armazená-lo permanentemente, e nós o moveremos 39 00:02:59,840 --> 00:03:04,010 mais tarde com a API do sistema de arquivos, mas, por enquanto, isso 40 00:03:04,670 --> 00:03:06,740 é algo que pode trabalhar com. 41 00:03:06,770 --> 00:03:16,840 Então, para produzir uma visualização, podemos gerenciar algum estado aqui no seletor de imagens importando use state e inicializando-o lá em 42 00:03:16,870 --> 00:03:24,150 cima, use state pode ser chamado aqui e, é claro, eu recebo alguns dados aqui 43 00:03:24,510 --> 00:03:33,840 e essa é a minha imagem escolhida e defina a função de imagem escolhida como você está acostumado a 44 00:03:33,870 --> 00:03:36,740 partir do estado de uso e 45 00:03:36,810 --> 00:03:39,160 agora podemos utilizá-la aqui. 46 00:03:39,240 --> 00:03:44,340 Aqui eu quero definir a imagem escolhida para a imagem. uri, de modo que o link para 47 00:03:44,360 --> 00:03:46,550 a minha imagem, para que o 48 00:03:46,590 --> 00:03:53,910 caminho como uma string para a minha imagem e o mais interessante é que esse caminho possa ser usado com o componente de 49 00:03:53,940 --> 00:03:57,830 imagem, ele funciona com o componente de imagem sem nenhuma configuração especial. 50 00:03:57,840 --> 00:04:02,160 Portanto, podemos adicionar código-fonte e agora precisamos configurá-lo como 51 00:04:02,160 --> 00:04:08,800 um objeto com essa propriedade URI. Até o momento, no curso, usamos isso para apontar para imagens de 52 00:04:08,820 --> 00:04:11,130 rede, bem, você também pode apontar para 53 00:04:11,130 --> 00:04:13,770 imagens locais, então aqui podemos apontar para a imagem escolhida. 54 00:04:13,980 --> 00:04:18,700 É claro que isso só funciona se tivermos uma imagem escolhida, o que só acontece depois 55 00:04:19,140 --> 00:04:23,940 de usar a câmera. Agora, podemos adicionar um if check aqui ou uma simples expressão ternária, 56 00:04:24,590 --> 00:04:31,770 onde verificamos se a imagem escolhida está definida e se não está definida, portanto, o ponto de exclamação, mostro esse texto de fallback, caso 57 00:04:31,890 --> 00:04:38,820 contrário, com dois pontos aqui, defino a imagem e agora temos essa saída condicional e, portanto, se salvarmos isso e, portanto, reiniciar nos dois 58 00:04:38,820 --> 00:04:42,640 dispositivos, nos dois simuladores, se eu for para o Android e eu tiro 59 00:04:42,660 --> 00:04:50,290 minha imagem aqui, é claro que essa câmera abre sem surpresa. Podemos confirmar isso, escolher nossa imagem, cortá-la 60 00:04:50,290 --> 00:04:51,490 e 61 00:04:51,490 --> 00:04:56,230 agora a vemos aqui na visualização, então essa é 62 00:04:56,230 --> 00:04:59,700 a nossa imagem agora sendo usada. 63 00:04:59,890 --> 00:05:05,310 E com isso, é claro que é hora de adicioná-lo ao local que podemos adicionar clicando no botão Salvar local e é hora 64 00:05:05,650 --> 00:05:08,350 de adicionar algum espaçamento entre esses dois botões, eu acho.