Yüksek Boyutlu Resimler
25.05.2019 - 11:30
Merhaba arkadaşlar, elimde galeriden seçtiğim yüksek boyutlu bir resim var, resmi açtığımda aşağıda bulunan kodu kullanarak küçüttüm;
private static Bitmap ResizeBitmap(Bitmap image, int maxWidth, int maxHeight) {
if (maxHeight > 0 && maxWidth > 0) {
int width = image.getWidth();
int height = image.getHeight();
float ratioBitmap = (float) width / (float) height;
float ratioMax = (float) maxWidth / (float) maxHeight;
int finalWidth = maxWidth;
int finalHeight = maxHeight;
if (ratioMax > 1) {
finalWidth = (int) ((float) maxHeight * ratioBitmap);
} else {
finalHeight = (int) ((float) maxWidth / ratioBitmap);
}
image = Bitmap.createScaledBitmap(image, finalWidth, finalHeight, true);
return image;
} else {
return image;
}
}
//width = 1080
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int width = displayMetrics.widthPixels;
if (bitmap.getWidth() >= width && bitmap.getWidth() > bitmap.getHeight()) {
int boyutg = bitmap.getWidth() / width;
Bitmap = ResizeBitmap(bitmap, (bitmap.getWidth() / boyutg), (bitmap.getHeight() / boyutg));
}
else if (bitmap.getHeight() >= width && bitmap.getHeight() > bitmap.getWidth()){
int boyuty = bitmap.getHeight() / width;
Bitmap = ResizeBitmap(bitmap, (bitmap.getWidth() / boyuty), (bitmap.getHeight() / boyuty));
}
else if (bitmap.getHeight() >= width && bitmap.getWidth() >= width){
int boyutg = bitmap.getWidth() / width;
int boyuty = bitmap.getHeight() / width;
Bitmap = ResizeBitmap(bitmap, (bitmap.getWidth() / boyutg), (bitmap.getHeight() / boyuty));
}
else {
Bitmap = bitmap;
}
ancak resmin aşağıda bulunan resimdeki gibi açılması lazımken yarıya kadar olan siyah kısım görünmüyor ve resim beyaz olarak açılıyor, resmi nasıl hem boyutunu küçültüp hemde kalitesini koruyarak açabilirim?
8
Görüntülenme
0 Beğeni