Android 将视图矩形坐标转换为位图区域

Android 将视图矩形坐标转换为位图区域,android,bitmap,android-camera,android-camera2,Android,Bitmap,Android Camera,Android Camera2,我有一个摄像头屏幕,里面有矩形的简单视图,为了拍照,用户需要将对象放在矩形内,拍照后应用程序需要剪切图像并只显示矩形内的区域 我从Camera2API接收图像并将其转换为位图。 屏幕上有矩形坐标。 问题是位图的宽度/高度(例如5472/7296)和与设备屏幕相关的Rect坐标left-114 top-764 width-852 height-609,我如何将其转换为位图上的区域以在Rect区域中剪切位图 我正在使用 Bitmap createBitmap(Bitmap source, int x

我有一个摄像头屏幕,里面有矩形的简单视图,为了拍照,用户需要将对象放在矩形内,拍照后应用程序需要剪切图像并只显示矩形内的区域

我从Camera2API接收图像并将其转换为位图。 屏幕上有矩形坐标。 问题是位图的宽度/高度(例如5472/7296)和与设备屏幕相关的Rect坐标left-114 top-764 width-852 height-609,我如何将其转换为位图上的区域以在Rect区域中剪切位图

我正在使用

Bitmap createBitmap(Bitmap source, int x, int y, int width, int height)

我试着用百分比计算,但没有发现5%的误差。

因此解决方案是将位图缩放到屏幕大小

Bitmap bitmap = BitmapUtil.scaleBitmap(bitmap, screenWidth, screenHeight);
然后按右心形修剪

Bitmap cropBitmap = Bitmap.createBitmap(bitmap, rect.left, rect.top, rect.width(), rect.height());