android - 根据图片的大小改变图片的分辨率

标签 android image bitmap resolution

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

最佳答案

为了重新缩放我的图片,因为我的图像高度有限制,所以我使用下面的代码来调整它的大小。但我不想调整 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);
            }

关于android - 根据图片的大小改变图片的分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10496453/

相关文章:

android - 没有前景的应用程序间通信的最佳方法?

java - 西蒙说安卓游戏

java - 如何导入预构建的 *.so 库并从新项目中调用它?

c - X11 : Cannot draw an image on transparent window created with XCreateWindow

android - 如何向代码库追溯添加测试?

html - 无法调整 bootstrap 3 框的大小以适合图像

javascript - React Native - Axios - 尝试上传图片

android - SVG 数据 URI 到位图

android - 图像的位图在 android 应用程序的整个生命周期中是否保持不变?

java - 如何在 android/java 中使用矩阵移动和旋转 Canvas 中的位图?