Soru & Cevap

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?

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-16838-1420450309.jpg
brhngk
21.09.2019 - 12:53

Eğer png formatında bir resim ise https://tinypng.com/ sitesinden değilse tinyjpg sitesinden boyutu küçültüp tekrar projeye ekleyebilirsiniz.