-
-
Save nesquena/3885707fd3773c09f1bb to your computer and use it in GitHub Desktop.
Easy utility for scaling bitmaps
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class BitmapScaler | |
{ | |
// scale and keep aspect ratio | |
public static Bitmap scaleToFitWidth(Bitmap b, int width) | |
{ | |
float factor = width / (float) b.getWidth(); | |
return Bitmap.createScaledBitmap(b, width, (int) (b.getHeight() * factor), true); | |
} | |
// scale and keep aspect ratio | |
public static Bitmap scaleToFitHeight(Bitmap b, int height) | |
{ | |
float factor = height / (float) b.getHeight(); | |
return Bitmap.createScaledBitmap(b, (int) (b.getWidth() * factor), height, true); | |
} | |
// scale and keep aspect ratio | |
public static Bitmap scaleToFill(Bitmap b, int width, int height) | |
{ | |
float factorH = height / (float) b.getWidth(); | |
float factorW = width / (float) b.getWidth(); | |
float factorToUse = (factorH > factorW) ? factorW : factorH; | |
return Bitmap.createScaledBitmap(b, (int) (b.getWidth() * factorToUse), | |
(int) (b.getHeight() * factorToUse), true); | |
} | |
// scale and don't keep aspect ratio | |
public static Bitmap strechToFill(Bitmap b, int width, int height) | |
{ | |
float factorH = height / (float) b.getHeight(); | |
float factorW = width / (float) b.getWidth(); | |
return Bitmap.createScaledBitmap(b, (int) (b.getWidth() * factorW), | |
(int) (b.getHeight() * factorH), true); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Its just a typo but since this gist is referenced in codepath for android should be updated :)
float factorH = height / (float) b.getWidth();
In method scaleToFill(Bitmap b, int width, int height) should be:
float factorH = height / (float) b.getHeight();
Now bitmaps will be resized in their largest side! Thanks for the gist anyway 👍