Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Carregar e Salvar imagem.

Boa noite.

Tenho uma API no Spring Boot e gostaria de salvar uma imagem no banco Postgres (bytea) e depois carregá-la na aplicação Android.

Estou utilizando o Retrofit para comunicação com a API.

Vi que para trabalhar com imagens preciso converter em Base64.

Alguém poderia me ajudar?

2 respostas
solução!

Oi Marcos, tudo bem ?

Trabalhar com base64 é um jeito bem ok, pois tu consegue trafegar os dados como string, pensando que o servidor será seu e afins.

Para trabalhar com base 64, tu pode fazer algo similar a isso aqui:

fun Bitmap.decodificaParaBase64(): String {

    val byteArrayOutputStream = ByteArrayOutputStream()
    this.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream)
    val byteArray = byteArrayOutputStream.toByteArray()

    return Base64.encodeToString(byteArray, Base64.DEFAULT)

}

Você vai precisar ter a imagem já tirada e convertida em bitmap.

Quando for carregar do backend o código é similar:

val decode: ByteArray = Base64.decode(foto, Base64.DEFAULT)
val bitmap = BitmapFactory.decodeByteArray(decode, 0, decode.size)

E ai basta tu usar em seu image view

Obrigado Matheus! Funcionou certinho.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software