7
votes

Redimensionner un bitmap

Le code ci-dessous redimensionne un bitmap et conserve le rapport de format. Je me demandais s'il y a une manière plus efficace de redimensionnement, car j'ai eu l'idée que je écris du code déjà disponible dans l'API Android.

private Bitmap resizeImage(Bitmap bitmap, int newSize){
    int width = bitmap.getWidth();
    int height = bitmap.getHeight(); 

    int newWidth = 0;
    int newHeight = 0;

    if(width > height){
        newWidth = newSize;
        newHeight = (newSize * height)/width;
    } else if(width < height){
        newHeight = newSize;
        newWidth = (newSize * width)/height;
    } else if (width == height){
        newHeight = newSize;
        newWidth = newSize;
    }

    float scaleWidth = ((float) newWidth) / width;
    float scaleHeight = ((float) newHeight) / height;

    Matrix matrix = new Matrix();
    matrix.postScale(scaleWidth, scaleHeight);

    Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, 
            width, height, matrix, true); 

    return resizedBitmap;
}


0 commentaires

3 Réponses :


0
votes

Je ne pense vraiment pas, j'ai fait presque la même manière que vous, et j'ai eu l'idée des pages de développeurs Android ...


0 commentaires

0
votes

dépend de la manière dont vous utilisez l'image. Si tout ce que vous voulez faire est d'afficher le bitmap dans une vue, appelez simplement myImageView.setimagebitmap (bitmap) et laissez le cadre le redimensionner. Mais si vous êtes préoccupé par la mémoire, la mise à l'échelle d'abord peut être une bonne approche.


0 commentaires

16
votes

Utilisez la méthode bitmap.createscaledbitmap () :)


0 commentaires