IIC2233 / syllabus-2019-1

Repositorio oficial del curso IIC2233 Programación Avanzada 🎉 🎊
43 stars 69 forks source link

Manejo de bytes de foto de perfil #579

Closed furzuadr closed 5 years ago

furzuadr commented 5 years ago

Hola! Hago esta issue porque al parecer varios tenemos la duda y en el enunciado queda poco clara. La secuencia para que esté bueno debe ser la siguiente?:

1) Jugador elige el path de la imagen desde el frontend 2) Se envía el path del frontend al client mediante una señal 3) Desde el client se ocnvierte la imagen a una matriz (usando get_pixels()) 3) Se envía al server la matriz 4) El server agarra la matriz y luego la convierte en un png que lo guarda dentro de la carpeta server. 5) El server envía al client la matriz de la imagen guardada dentro de su server 6) El client toma la matriz rgb de la imagen, crea el archivo dentro de su carpeta de client 7) El client envía al frontend el path de la imagen alojada dentro de client 8) El frontend toma el path y la ubica en donde le indiquemos

Estaría correcta? Falta indicar que en el caso de que un usuario ya exista y tenga foto de perfil, se usan los pasos desde el 5 al 8 para fijar la imagen cuando el cliente haga un login.

Gracias!

jeschuwirth commented 5 years ago

Hola!

Como el enunciado no lo dice queda a tu criterio como lo quieres hacer, pero ten en cuenta lo siguiente: para pasar información del cliente al server se hace en forma de bytes, por lo que podrías pasar inmediatamente la imagen en vez de la matriz RGB respectiva.

Entiendo que no es una respuesta muy clara pero es a tu criterio, por lo que mientras funcione y ocupes correctamente networking para trabajar cliente-servidor con señales correctas para el frontend no deberías tener ningún problema.

Suerte en la tarea!

pmolinaj commented 5 years ago

De ninguna manera se le debe pasar el path de la foto directamente al servidor?

jeschuwirth commented 5 years ago

@pmolinaj Recuerda la sección 4.2.1 separación funcional del enunciado: image No puedes tener el cliente y el servidor en la misma carpeta y no debes ser capaz de meterte en los archivos del otro, recuerda que la idea de networking es que el cliente pueda estar en un computador distintos al servidor, por lo tanto el path de la imagen no le sirve al servidor, debes pasarle la imagen completa.

Exito!

fediaz3 commented 5 years ago

Hola @jeschuwirth queria preguntar acerca de tu opción de : pasar información del cliente al server en forma de bytes y pasar inmediatamente la imagen en vez de la matriz RGB respectiva.

Al hacerlo de esta manera, el cliente lee los bytes de la imagen y el servidor recibe los bytes como decias, despues yo guardo en el servidor la foto en formato png y ok, esta guardada. noto que de esta forma no se usa getpixels.

Pero en el enunciado dice que: debemos obtener la matriz RGB y posteriormente guardarla en formato png. Lo que me causa confusión, osea, tendría que leer la foto png recién guardada en el servidor, luego con get_pixels tener su matriz RGB y después con la seccion manejo de bytes pasar la matriz RGB a png nuevamente guardarla en formato png?

Gracias :)

jeschuwirth commented 5 years ago

@fediaz3, el enunciado dice eso porque la foto entregada desde el cliente no necesariamente es una foto en formato png, podría ser jpg u otro, por lo tanto si no es png se tiene que pasar a matriz RGB y guardarla como png.

Aparte de eso, si el cliente entrega un png no hay problema con simplemente guardar la imagen.

Exito!