/ / Gerar uma soma md5 de um objeto Android Bitmap - java, android, bitmap, md5

Gere uma soma md5 de um objeto Android Bitmap - java, android, bitmap, md5

Eu passei várias horas tentando descobrir como fazer isso. Eu li post após post aqui no stackoverflow e na documentação.

Eu tenho um android.graphics.Objeto bitmap e preciso obtê-lo "s md5 sum. No ponto em que quero verificar a soma, ele não foi salvo no sistema de arquivos. Vi várias maneiras de fazer isso para objetos java.io.File. Eu só preciso de uma função que recebe um objeto Bitmap e retorna a soma hexadecimal md5 como uma String.

Isso pode ter sido endereçado em algum lugar, mas se foi, não consegui entender ou deduzir como fazê-lo.

Quanto menos recursos forem pesados, melhor é o método.

Respostas:

8 para resposta № 1

Obtenha bytes de bitmap para calcular md5.

Bitmap bm = ... // your bitmap
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object
byte[] bitmapBytes = baos.toByteArray();

Então você tem array de bytes agora. Você pode encontrar como obter md5 hash de matriz de bytes no android Aqui.


0 para resposta № 2

Eu não sou desenvolvedor Android, mas vejo na referência da API (http://developer.android.com/reference/android/graphics/Bitmap.html) existem métodos para:

  • Obtendo o tamanho do bitmap: getWidth, getHeight
  • obtendo os pixels como uma matriz de inteiros: getPixels

Assim, você poderia simplesmente criar uma matriz de tamanho necessário, ler todos os pixels e converter a matriz em byte [].

Então, não deve ser um problema calcular a soma md5 a partir dele.