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