﻿1
00:00:01,310 --> 00:00:04,140
‫-: Neste vídeo, você aprenderá sobre processamento

2
00:00:04,140 --> 00:00:06,930
‫e manipulação de imagens com Node JS

3
00:00:06,930 --> 00:00:08,760
‫e, neste caso específico,

4
00:00:08,760 --> 00:00:11,193
‫vamos redimensionar e converter nossas imagens.

5
00:00:12,760 --> 00:00:15,140
‫Portanto, em toda a nossa interface

6
00:00:15,140 --> 00:00:18,490
‫de usuário, presumimos que as imagens carregadas são quadrados.

7
00:00:18,490 --> 00:00:20,250
‫Para que possamos

8
00:00:20,250 --> 00:00:22,570
‫exibi-los como círculos como este.

9
00:00:22,570 --> 00:00:25,400
‫E isso só funciona quando eles são

10
00:00:25,400 --> 00:00:27,260
‫quadrados, mas é claro

11
00:00:27,260 --> 00:00:30,535
‫que no mundo real os usuários raramente farão upload

12
00:00:30,535 --> 00:00:32,520
‫de imagens que sejam quadrados.

13
00:00:32,520 --> 00:00:34,600
‫Portanto, nosso trabalho agora

14
00:00:34,600 --> 00:00:37,850
‫é redimensionar as imagens para torná-las quadradas.

15
00:00:37,850 --> 00:00:41,300
‫Tudo bem, então aqui está como vamos fazer isso.

16
00:00:41,300 --> 00:00:45,370
‫Vamos adicionar outro middleware antes de me atualizar e

17
00:00:45,370 --> 00:00:47,570
‫então esse middleware cuidará

18
00:00:47,570 --> 00:00:49,920
‫do processamento real da imagem.

19
00:00:49,920 --> 00:00:53,200
‫Tudo bem, então vamos fazer isso aqui no código

20
00:00:53,200 --> 00:00:54,470
‫logo depois desse,

21
00:00:54,470 --> 00:00:57,333
‫porque eles estão meio que conectados, não estão?

22
00:00:58,610 --> 00:01:00,623
‫Então, exporta

23
00:01:01,690 --> 00:01:05,513
‫ponto, redimensiona a foto do usuário.

24
00:01:13,250 --> 00:01:15,320
‫E antes de continuarmos, vamos

25
00:01:15,320 --> 00:01:18,160
‫adicionar esse middleware à pilha de middleware

26
00:01:18,160 --> 00:01:19,523
‫nesta rota específica.

27
00:01:20,870 --> 00:01:22,673
‫Isso está nas

28
00:01:23,860 --> 00:01:26,710
‫rotas do usuário, e aqui, logo

29
00:01:26,710 --> 00:01:27,923
‫após a

30
00:01:29,410 --> 00:01:32,470
‫foto ser carregada neste middleware, iremos redimensioná-la.

31
00:01:32,470 --> 00:01:35,180
‫Portanto, redimensione e aqui está o

32
00:01:35,180 --> 00:01:36,603
‫controlador do usuário.

33
00:01:41,130 --> 00:01:42,710
‫Tudo bem.

34
00:01:42,710 --> 00:01:44,060
‫Vamos descer

35
00:01:45,620 --> 00:01:47,320
‫aqui e voltar.

36
00:01:47,320 --> 00:01:49,480
‫E então, neste ponto, já temos

37
00:01:49,480 --> 00:01:51,540
‫o arquivo de nosso pedido.

38
00:01:51,540 --> 00:01:53,500
‫Pelo menos se houve um upload

39
00:01:53,500 --> 00:01:55,000
‫e se não houve

40
00:01:55,000 --> 00:01:57,280
‫upload, é claro que não queremos fazer nada.

41
00:01:57,280 --> 00:02:00,163
‫Isso significa que queremos ir para o próximo middleware.

42
00:02:01,090 --> 00:02:03,680
‫Portanto, se não houver nenhum

43
00:02:05,230 --> 00:02:10,230
‫arquivo na solicitação, retorne imediatamente e vá para a próxima.

44
00:02:10,960 --> 00:02:13,380
‫Ok, mas caso contrário, é claro, então

45
00:02:13,380 --> 00:02:15,700
‫queremos fazer o redimensionamento da imagem.

46
00:02:15,700 --> 00:02:19,690
‫E para isso vamos usar o pacote Sharp.

47
00:02:19,690 --> 00:02:20,890
‫Tudo bem.

48
00:02:20,890 --> 00:02:24,453
‫Então, antes de mais nada, vamos realmente instalá-lo.

49
00:02:25,630 --> 00:02:28,710
‫Então o MPM instale o sharp Alright,

50
00:02:32,190 --> 00:02:35,720
‫e já que ele está fazendo seu trabalho,

51
00:02:35,720 --> 00:02:38,533
‫vamos colocar isso aqui já.

52
00:02:39,500 --> 00:02:40,463
‫Tão

53
00:02:41,940 --> 00:02:45,600
‫afiado, e exige, afiado.

54
00:02:45,600 --> 00:02:47,360
‫E sharp é uma biblioteca de

55
00:02:47,360 --> 00:02:51,230
‫processamento de imagem muito boa e fácil de usar para Node Js. E

56
00:02:51,230 --> 00:02:52,590
‫há muitas coisas que podemos

57
00:02:52,590 --> 00:02:53,930
‫fazer com ela.

58
00:02:53,930 --> 00:02:55,970
‫Mas onde realmente brilha é

59
00:02:55,970 --> 00:02:59,150
‫para redimensionar imagens de uma forma muito simples.

60
00:02:59,150 --> 00:03:03,690
‫E é exatamente isso que estamos procurando aqui.

61
00:03:03,690 --> 00:03:04,550
‫Tudo bem.

62
00:03:04,550 --> 00:03:08,590
‫Então, dizemos sustenido e aqui basicamente precisamos

63
00:03:08,590 --> 00:03:11,180
‫passar o arquivo.

64
00:03:11,180 --> 00:03:13,990
‫Agora, ao fazer um processamento de

65
00:03:13,990 --> 00:03:16,120
‫imagem assim logo após

66
00:03:16,120 --> 00:03:19,310
‫enviar um arquivo, é sempre melhor nem mesmo

67
00:03:19,310 --> 00:03:22,770
‫salvar o arquivo no disco, mas salvá-lo na memória.

68
00:03:22,770 --> 00:03:24,580
‫Já falamos sobre isso

69
00:03:24,580 --> 00:03:27,130
‫antes, e agora vamos fazer isso na prática.

70
00:03:27,130 --> 00:03:29,930
‫Ok, então para isso precisamos mudar um

71
00:03:29,930 --> 00:03:32,830
‫pouco a configuração do multer e, na

72
00:03:32,830 --> 00:03:35,230
‫verdade, apenas esse armazenamento do

73
00:03:35,230 --> 00:03:38,703
‫multer, porque agora não precisamos mais de nada disso.

74
00:03:40,600 --> 00:03:42,453
‫E, em vez

75
00:03:45,700 --> 00:03:50,700
‫de armazenamento multer, será simplesmente armazenamento de memória multer dot.

76
00:03:52,250 --> 00:03:54,810
‫E assim, ok?

77
00:03:54,810 --> 00:03:56,720
‫E como mencionei antes,

78
00:03:56,720 --> 00:04:00,730
‫dessa forma a imagem será armazenada como um buffer.

79
00:04:00,730 --> 00:04:03,080
‫E então esse buffer está

80
00:04:03,080 --> 00:04:07,820
‫disponível sob solicitação. Arquivo dot buffer e é muito mais eficiente

81
00:04:07,820 --> 00:04:10,500
‫assim, ao invés de ter que

82
00:04:10,500 --> 00:04:13,600
‫gravar o arquivo no disco e então

83
00:04:13,600 --> 00:04:15,330
‫lê-lo novamente.

84
00:04:15,330 --> 00:04:17,860
‫Nós simplesmente mantemos a imagem basicamente

85
00:04:17,860 --> 00:04:20,960
‫na memória e então aqui podemos ler isso, certo?

86
00:04:20,960 --> 00:04:23,181
‫De qualquer forma, chamar a

87
00:04:23,181 --> 00:04:26,300
‫função sharp desta forma criará um objeto no qual

88
00:04:26,300 --> 00:04:29,750
‫podemos encadear vários métodos para fazer nosso processamento de imagem.

89
00:04:29,750 --> 00:04:32,913
‫E então o primeiro que vamos fazer é redimensionar.

90
00:04:34,040 --> 00:04:36,740
‫Então, redimensione e aqui podemos especificar a

91
00:04:36,740 --> 00:04:38,480
‫largura e a altura.

92
00:04:38,480 --> 00:04:42,480
‫Digamos 500 e 500, portanto, lembre-se de que

93
00:04:42,480 --> 00:04:44,780
‫queremos imagens quadradas e, claro,

94
00:04:44,780 --> 00:04:47,220
‫a altura precisa ser igual

95
00:04:47,220 --> 00:04:48,770
‫à largura.

96
00:04:48,770 --> 00:04:50,750
‫Agora, isso irá recortar a

97
00:04:50,750 --> 00:04:55,050
‫imagem de modo que cubra todo esse quadrado 500 vezes 500.

98
00:04:55,050 --> 00:04:56,400
‫E, na verdade,

99
00:04:56,400 --> 00:04:59,130
‫podemos mudar esse comportamento padrão, se quisermos.

100
00:04:59,130 --> 00:05:01,320
‫E então, vamos novamente, dar uma olhada

101
00:05:01,320 --> 00:05:02,563
‫rápida na documentação.

102
00:05:04,860 --> 00:05:09,053
‫Então, digamos, github sharp, mas na verdade seu próprio

103
00:05:09,990 --> 00:05:12,100
‫site é um pouco

104
00:05:12,100 --> 00:05:14,440
‫melhor, um pouco mais completo.

105
00:05:14,440 --> 00:05:18,360
‫Então, vamos clicar nesse link aqui, e então aqui podemos passar

106
00:05:18,360 --> 00:05:20,770
‫ao redimensionamento, que é o que estamos

107
00:05:20,770 --> 00:05:22,780
‫fazendo no momento e aqui

108
00:05:22,780 --> 00:05:25,153
‫está o que eu estava falando.

109
00:05:26,110 --> 00:05:29,130
‫Tudo bem, então o padrão aqui é que

110
00:05:29,130 --> 00:05:31,070
‫a imagem será cortada

111
00:05:31,070 --> 00:05:33,610
‫para cobrir ambas as dimensões fornecidas.

112
00:05:33,610 --> 00:05:38,610
‫Mas também podemos escolher conter, preencher, dentro ou fora.

113
00:05:39,280 --> 00:05:43,310
‫E faríamos isso definindo as opções aqui.

114
00:05:43,310 --> 00:05:46,700
‫Assim, podemos definir a largura, altura e, em seguida, como

115
00:05:46,700 --> 00:05:48,830
‫uma terceira opção, podemos definir

116
00:05:48,830 --> 00:05:52,070
‫este objeto de opções onde podemos definir o ajuste.

117
00:05:52,070 --> 00:05:54,560
‫Também podemos definir a posição, que é

118
00:05:54,560 --> 00:05:56,433
‫o centro por padrão.

119
00:05:58,970 --> 00:06:00,653
‫Você vê que há todos os

120
00:06:00,653 --> 00:06:03,420
‫tipos de coisas que poderíamos realmente definir para ajustar o

121
00:06:03,420 --> 00:06:04,670
‫nosso processamento de imagem.

122
00:06:04,670 --> 00:06:07,653
‫Mas, neste caso, o que temos é o suficiente.

123
00:06:08,550 --> 00:06:10,720
‫Então, vamos passar para a próxima etapa.

124
00:06:10,720 --> 00:06:12,990
‫Porque o que eu quero fazer

125
00:06:12,990 --> 00:06:16,450
‫a seguir é converter as imagens sempre para jpeg, ok?

126
00:06:16,450 --> 00:06:18,863
‫E para isso, usamos para formatar

127
00:06:21,640 --> 00:06:23,463
‫e, em seguida, jpeg.

128
00:06:25,000 --> 00:06:28,180
‫Também podemos definir a qualidade desse JPEG.

129
00:06:28,180 --> 00:06:30,170
‫Então basicamente para compactá-lo

130
00:06:30,170 --> 00:06:32,310
‫um pouco para que não

131
00:06:33,230 --> 00:06:36,900
‫ocupe muito espaço e então para isso, usamos

132
00:06:36,900 --> 00:06:41,900
‫o método jpeg, e configuramos uma opção neste objeto com qualidade e

133
00:06:42,290 --> 00:06:45,043
‫digamos 90 por cento aqui, certo?

134
00:06:46,910 --> 00:06:49,860
‫Cada método em sua própria linha é

135
00:06:49,860 --> 00:06:53,210
‫muito melhor, mas na verdade ainda não terminamos.

136
00:06:53,210 --> 00:06:56,020
‫Estamos quase terminando, mas não totalmente.

137
00:06:56,020 --> 00:06:57,460
‫Porque agora, no

138
00:06:57,460 --> 00:07:01,850
‫final, nós finalmente queremos gravá-lo em um arquivo em nosso disco.

139
00:07:01,850 --> 00:07:04,913
‫E então, para isso, podemos usar para file, agora

140
00:07:06,230 --> 00:07:08,550
‫esse método aqui realmente precisa

141
00:07:08,550 --> 00:07:10,940
‫de todo o caminho para o arquivo.

142
00:07:10,940 --> 00:07:13,180
‫Basicamente, imagens públicas,

143
00:07:14,240 --> 00:07:17,440
‫barra, usuários e, finalmente, aqui

144
00:07:17,440 --> 00:07:20,460
‫o nome do arquivo, certo?

145
00:07:20,460 --> 00:07:21,990
‫Então, vamos tirar isso

146
00:07:21,990 --> 00:07:23,550
‫do que tínhamos aqui antes.

147
00:07:23,550 --> 00:07:25,840
‫Claro, queremos que nossas imagens tenham

148
00:07:25,840 --> 00:07:27,183
‫um formato semelhante.

149
00:07:29,520 --> 00:07:32,380
‫Tudo bem, então vamos copiar isso.

150
00:07:32,380 --> 00:07:34,723
‫Mas, na verdade, não vou colocar isso bem aqui.

151
00:07:35,790 --> 00:07:38,010
‫Em vez disso, irei

152
00:07:38,010 --> 00:07:42,443
‫salvá-lo para solicitar o arquivo dot nome do arquivo.

153
00:07:43,490 --> 00:07:45,777
‫Agora, por que estou fazendo assim?

154
00:07:45,777 --> 00:07:48,280
‫Bem, é porque agora este nome de

155
00:07:48,280 --> 00:07:50,340
‫arquivo não está definido.

156
00:07:50,340 --> 00:07:55,340
‫Portanto, quando decidimos salvar a imagem na memória como um buffer, o

157
00:07:56,270 --> 00:08:00,050
‫nome do arquivo não será realmente definido, mas realmente precisamos

158
00:08:00,050 --> 00:08:02,300
‫desse nome de arquivo

159
00:08:02,300 --> 00:08:05,050
‫em nossa outra função de middleware, certo?

160
00:08:05,050 --> 00:08:09,310
‫Então, isso está aqui embaixo em atualizar-me bem aqui.

161
00:08:09,310 --> 00:08:12,360
‫Portanto, contamos com o nome do arquivo ponto do arquivo

162
00:08:12,360 --> 00:08:16,400
‫do pedido para salvar o nome do arquivo em nosso banco de dados, certo?

163
00:08:16,400 --> 00:08:19,770
‫E então, na verdade, devemos definir isso.

164
00:08:19,770 --> 00:08:22,442
‫E assim, anteriormente, era claro

165
00:08:22,442 --> 00:08:25,970
‫que era definido pelo upload do multer que

166
00:08:25,970 --> 00:08:30,323
‫tínhamos, mas como isso acabou agora, devemos basicamente redefini-lo aqui.

167
00:08:31,320 --> 00:08:32,260
‫OK?

168
00:08:32,260 --> 00:08:34,560
‫Então aqui, na verdade, podemos

169
00:08:34,560 --> 00:08:37,020
‫nos livrar dessa parte da extensão, porque

170
00:08:37,020 --> 00:08:39,460
‫já sabemos que sempre será um jpeg.

171
00:08:39,460 --> 00:08:42,570
‫Por causa disso formatar, ok?

172
00:08:42,570 --> 00:08:45,513
‫E aqui, podemos simplesmente colocar jpeg.

173
00:08:47,130 --> 00:08:50,383
‫Portanto, não há necessidade de obter a extensão do arquivo.

174
00:08:51,320 --> 00:08:52,263
‫E agora

175
00:08:54,610 --> 00:08:55,993
‫aqui, podemos usar isso.

176
00:08:56,911 --> 00:09:00,890
‫Req dot file dot nome do arquivo, e

177
00:09:00,890 --> 00:09:02,403
‫é realmente isso.

178
00:09:04,020 --> 00:09:04,853
‫OK?

179
00:09:04,853 --> 00:09:06,820
‫Portanto, tudo o que precisamos

180
00:09:06,820 --> 00:09:10,790
‫fazer agora para terminar é, então, realmente chamar o próximo middleware na pilha.

181
00:09:10,790 --> 00:09:14,430
‫E essa será a função de manipulador de atualização.

182
00:09:14,430 --> 00:09:17,603
‫Então, é claro, vamos testar isso agora.

183
00:09:18,530 --> 00:09:21,280
‫Então, não precisamos mais desse.

184
00:09:21,280 --> 00:09:23,390
‫Vamos ao Postman e

185
00:09:23,390 --> 00:09:25,240
‫agora o usuário

186
00:09:25,240 --> 00:09:28,410
‫que desejo atualizar se chama arrav, acho.

187
00:09:28,410 --> 00:09:31,053
‫Vamos dar uma olhada aqui em nossos dados rapidamente.

188
00:09:32,520 --> 00:09:35,910
‫E então sim, então esta é a imagem não quadrada

189
00:09:35,910 --> 00:09:38,070
‫que iremos enviar agora e na verdade

190
00:09:38,070 --> 00:09:39,800
‫você vê o tamanho aqui

191
00:09:39,800 --> 00:09:42,600
‫que é 1000 vezes 1500, e então vamos

192
00:09:42,600 --> 00:09:44,540
‫comparar isso mais tarde com nossa

193
00:09:44,540 --> 00:09:46,223
‫imagem carregada redimensionada.

194
00:09:47,110 --> 00:09:48,090
‫Tudo bem.

195
00:09:48,090 --> 00:09:51,090
‫De qualquer forma, vamos obter o

196
00:09:52,120 --> 00:09:55,720
‫nome para arrav Na verdade não precisamos, eles são

197
00:09:56,840 --> 00:10:01,010
‫sempre os mesmos então arrav assim, então vamos fazer o login.

198
00:10:01,010 --> 00:10:02,930
‫Para que possamos atualizá-lo

199
00:10:02,930 --> 00:10:07,530
‫e você ver que agora a imagem aqui é o usuário 11.

200
00:10:07,530 --> 00:10:09,620
‫E só para ver isso

201
00:10:09,620 --> 00:10:11,400
‫um pouco melhor, vamos realmente

202
00:10:11,400 --> 00:10:15,370
‫atualizar, vamos realmente fazer login, em nosso aplicativo da web usando

203
00:10:15,370 --> 00:10:16,543
‫esse usuário.

204
00:10:21,820 --> 00:10:23,883
‫Então teste um, dois, três, quatro.

205
00:10:26,420 --> 00:10:29,490
‫Tudo bem, essa é a imagem

206
00:10:29,490 --> 00:10:32,233
‫atual e agora vamos atualizá-la.

207
00:10:37,120 --> 00:10:40,260
‫Selecione os arquivos, e aqui está a

208
00:10:41,330 --> 00:10:44,900
‫nossa imagem, abra isso e vamos ver o que acontece.

209
00:10:44,900 --> 00:10:46,290
‫E terminamos.

210
00:10:46,290 --> 00:10:47,980
‫Na verdade, foi muito

211
00:10:47,980 --> 00:10:50,430
‫rápido, então vamos ver se está correto.

212
00:10:50,430 --> 00:10:53,023
‫Bem, pelo menos o nome aqui parece correto.

213
00:10:54,590 --> 00:10:59,590
‫Se dermos uma olhada em nossos usuários agora aqui, isso

214
00:10:59,750 --> 00:11:02,900
‫é público ou aqui mesmo.

215
00:11:02,900 --> 00:11:04,520
‫Então esse deveria ser o que

216
00:11:04,520 --> 00:11:05,420
‫realmente não é.

217
00:11:07,610 --> 00:11:10,070
‫E, na verdade, não está em lugar nenhum.

218
00:11:10,070 --> 00:11:11,710
‫Vamos recarregar, ah, e

219
00:11:11,710 --> 00:11:12,913
‫aqui está.

220
00:11:14,380 --> 00:11:15,493
‫Agora, esse é o único.

221
00:11:16,580 --> 00:11:20,060
‫Então você vê que agora é 500 vezes

222
00:11:20,060 --> 00:11:21,700
‫500, é muito

223
00:11:21,700 --> 00:11:26,560
‫menor aqui, então 55 em comparação com os 315 que tínhamos antes.

224
00:11:26,560 --> 00:11:28,180
‫Isso é muito

225
00:11:28,180 --> 00:11:31,740
‫melhor e, como você verá aqui, agora

226
00:11:31,740 --> 00:11:34,310
‫deve ser atualizado aqui também.

227
00:11:34,310 --> 00:11:36,050
‫E isso é perfeito.

228
00:11:36,050 --> 00:11:39,650
‫Portanto, o rosto está realmente bem no meio aqui.

229
00:11:39,650 --> 00:11:43,730
‫Então esse redimensionamento foi realmente perfeito.

230
00:11:43,730 --> 00:11:44,563
‫Legal.

231
00:11:44,563 --> 00:11:46,530
‫E espero que você encontre

232
00:11:46,530 --> 00:11:48,810
‫alguma utilidade para esse tipo de

233
00:11:48,810 --> 00:11:51,290
‫processamento de imagens também em seus próprios aplicativos.

234
00:11:51,290 --> 00:11:54,660
‫Então, apenas para recapitular rapidamente o que fizemos aqui.

235
00:11:54,660 --> 00:11:57,340
‫Bem, nós criamos uma nova função de

236
00:11:57,340 --> 00:11:59,490
‫middleware que será executada logo após

237
00:11:59,490 --> 00:12:01,460
‫o upload da foto.

238
00:12:01,460 --> 00:12:03,850
‫E esse upload agora está realmente

239
00:12:03,850 --> 00:12:07,860
‫acontecendo em um buffer e não mais diretamente no sistema de arquivos.

240
00:12:07,860 --> 00:12:08,693
‫Direito?

241
00:12:08,693 --> 00:12:11,163
‫E é por isso que usamos esse armazenamento de

242
00:12:12,010 --> 00:12:14,950
‫memória aqui, mas é claro que este filtro de multer

243
00:12:14,950 --> 00:12:16,420
‫aqui ainda está funcionando.

244
00:12:16,420 --> 00:12:20,063
‫E então nós ainda podemos apenas fazer upload de imagens, certo?

245
00:12:20,980 --> 00:12:23,510
‫Então, aqui nesse middleware, colocamos o nome do

246
00:12:23,510 --> 00:12:25,600
‫arquivo da imagem no nome

247
00:12:25,600 --> 00:12:28,000
‫do arquivo ponto do arquivo do pedido

248
00:12:28,000 --> 00:12:30,200
‫para que possamos usá-lo no update me.

249
00:12:31,100 --> 00:12:33,510
‫Tudo bem, e aqui temos o

250
00:12:33,510 --> 00:12:35,670
‫próprio processamento de imagem real.

251
00:12:35,670 --> 00:12:38,330
‫Onde primeiro o redimensionamos para um

252
00:12:38,330 --> 00:12:40,120
‫quadrado e depois formatamos

253
00:12:40,120 --> 00:12:43,010
‫para jpeg com uma qualidade de 90

254
00:12:43,010 --> 00:12:45,930
‫por cento e, finalmente, gravamos esse arquivo em

255
00:12:45,930 --> 00:12:50,710
‫nosso sistema de arquivos exatamente na mesma pasta que especificamos também antes.

256
00:12:50,710 --> 00:12:53,260
‫Tudo bem, então é assim que funciona

257
00:12:53,260 --> 00:12:55,040
‫quando você precisa de

258
00:12:55,040 --> 00:12:57,310
‫algum processamento de imagem, mas se você

259
00:12:57,310 --> 00:13:00,500
‫não precisar, é claro que pode continuar usando assim, ok?

260
00:13:00,500 --> 00:13:02,210
‫E é muito importante que

261
00:13:02,210 --> 00:13:03,450
‫aprendamos como fazer

262
00:13:03,450 --> 00:13:05,160
‫isso das duas maneiras aqui.

263
00:13:05,160 --> 00:13:07,380
‫Tudo bem, a seguir, no

264
00:13:07,380 --> 00:13:10,462
‫próximo vídeo, faremos este formulário aqui funcionar para

265
00:13:10,462 --> 00:13:12,700
‫que possamos enviar as fotos

266
00:13:12,700 --> 00:13:14,633
‫dos usuários diretamente daqui.

