Android – Resize Bitmap

Publicado: 01/04/2010 em android, exemplos, java, mobile
Tags:, , , , ,

Para realizar resize de um bitmap (imagem) no android é muito fácil, basta utilizar o código abaixo:
Bitmap bitmapOriginal = BitmapFactory.decodeFile(realPath);
int width = bitmapOriginal.getWidth();
int height = bitmapOriginal.getHeight();
float newHeight = 240;
float newWidth = 320;
// calcula a escala
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// cria matrix para manipulação
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
int x=0;
int y=0;
//realiza o resize
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOriginal, x, y, width, height, matrix, true);

Com a classe Matrix, você consegue também, entre outras coisas, rotacionar a imagem.
Neste exemplo, o bitmap final (resizedBitmap) terá altura de 240 e largura de 320. Caso queira manter a proporção da imagem, basta usar o trecho de código abaixo:
int widthResize = 320;
float newHeight = height / ((float) width / (float) widthResize );
float newWidth = widthResize;

Além de redimensionar, com o método Bitmap.createBitmap você consegue fazer um crop da imagem. Para isto, basta alterar os valores das variáveis x, y, width e height.

Como o exemplo é de redimensionar a imagem, consideramos as posições 0 para x e y, e a altura e largura do bitmap original. Ou seja, ele irá considerar toda a imagem.

Anúncios
comentários
  1. Adamis disse:

    legal o codigo me ajudou muito mas Como eu faço pra salvar esta bitmap no sdcard ?

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s