2014-01-04 4 views
-2

Я выбрал изображение из галереи и расшифровал его. Теперь я просто хочу изменить размер растрового изображения до стандартного размера 72x72, чтобы использовать его в качестве фотографии профиля.Изменить размер растрового изображения на 72x72

Я искал много, но ничего не работало, некоторые из них повернули мое изображение без причины, некоторые из них делают изображение очень низкого качества. Это так сложно?

Проверить масштабируется 72x72 и оригинал:

72x72 (Как вы видите, поворачиваются и очень плохое качество) http://imgim.com/9958incic3494599.png

оригинал: http://imgim.com/3847incix7666386.png

Код:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) 
{ 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch(requestCode) 
    { 
    case 100: // SELECT_PHOTO 
     if(resultCode == RESULT_OK) 
     { 
      Uri selectedImage = imageReturnedIntent.getData(); 
      InputStream imageStream; 
      try 
      { 
       imageStream = getContentResolver().openInputStream(selectedImage); 
      }catch (Exception e){ return; } 

      Bitmap bm = BitmapFactory.decodeStream(imageStream); 
      bm = Bitmap.createScaledBitmap(bm, 72, 72, true); 
      UpdateAvatar(bm); 
     } 
     break; 
    } 
} 
+1

Ждите ответа в другом вопросе? Http: //stackoverflow.com/questions/20923037/pick-an-image-and-resize-to-72x72 – Magnus

ответ

1

Попробуйте эту функцию:

public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) { 
    int width = bm.getWidth(); 
    int height = bm.getHeight(); 
    float scaleWidth = ((float) newWidth)/width; 
    float scaleHeight = ((float) newHeight)/height; 
    // CREATE A MATRIX FOR THE MANIPULATION 
    Matrix matrix = new Matrix(); 
    // RESIZE THE BIT MAP 
    matrix.postScale(scaleWidth, scaleHeight); 

    // "RECREATE" THE NEW BITMAP 
    Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false); 
    return resizedBitmap; 
} 

Это помогает мне.

+0

Ваш ответ работает на меня, но изображение теперь с низким качеством , –

Смежные вопросы