2

我正在编写一个应用程序,它使用手机的相机拍照,然后显示它。问题是,对于具有高分辨率摄像头的手机,这会导致应用程序崩溃,因此我使用 isSampleSize 降低了分辨率,从而解决了这个问题。但是现在我遇到了具有较低分辨率相机的手机的问题-图片质量很差。有没有办法检查图像内存消耗是多少,并据此决定我是否要降低质量?

4

1 回答 1

0

为了重新调整我的图片,因为我在图像高度上有限制,我使用下面的代码来调整它的大小。但我不想调整 bmp 的大小,除非它高于我的身高要求,希望你能使用它。(使用流来获取我的照片)

                if (stream != null) {
                img = BitmapFactory.decodeStream(stream, null, o);
                float imgHeight = (float) img.getHeight();
                Display display = ((WindowManager) ctx.getSystemService(
                        Context.WINDOW_SERVICE)).getDefaultDisplay();
                float displayHeight = (float) (display.getHeight()-50);
                if(imgHeight>displayHeight) {
                    float scaleFactor = displayHeight/imgHeight;
                    img = Bitmap.createScaledBitmap(img, (int)(img.getWidth()*scaleFactor), (int)(imgHeight*scaleFactor), false);
                }
                saveBitmap(new File(getSdPath() + location), img);
            }
于 2012-05-08T12:36:37.590 回答