根据android中的矩形坐标裁剪捕获的图像
Posted
技术标签:
【中文标题】根据android中的矩形坐标裁剪捕获的图像【英文标题】:Crop the captured image on the basis of Rect Cordinates in android 【发布时间】:2021-10-11 07:05:17 【问题描述】:我正在尝试裁剪 RoundRect 内的部分。我在 PreviewView 顶部有一个叠加层。水平边距为屏幕宽度的 2%,顶部为屏幕高度的 15%。
当我拍照时,我想以与显示的 RoundRect 相同的比例裁剪它。由于捕获图像的分辨率与屏幕的分辨率不同,我无法获得圆角矩形内的确切部分。无论如何我可以使用用于 RoundRect 的边距值来获取捕获图像的边距值吗?
我确实尝试将其缩小到屏幕尺寸as mentioned here 并进行裁剪,但即使这样也无济于事,因为质量和纵横比会受到影响。
我正在使用位图来裁剪捕获的图像。
Bitmap.createBitmap(originalBp, left, top, right, bottom);
【问题讨论】:
【参考方案1】:输出与裁剪矩形对齐。不同用例的裁剪矩形应映射到相机传感器上的同一区域。如果您使用的是 PreviewView,计算从 Preview 到 ImageCapture 的转换的简单方法是使用CoordinateTransform:
// Build the transform from PreviewView to Capture
OutputTransform source = previewView.getOutputTransform();
OutputTransform source = FileTransformFactory().getOutputTransform(capturedFile);
CoordinateTransform coordinateTransform = new CoordinateTransform(source, target);
coordinateTransform.mapRect(roundRect);
// Then use roundRect to crop the capture file.
【讨论】:
以上是关于根据android中的矩形坐标裁剪捕获的图像的主要内容,如果未能解决你的问题,请参考以下文章