根据放置在相机上的视图裁剪图像的特定部分
Posted
技术标签:
【中文标题】根据放置在相机上的视图裁剪图像的特定部分【英文标题】:Crop the certain portion of image based on view placed on camera 【发布时间】:2019-07-22 11:45:20 【问题描述】:您需要从图像视图中或通过相机捕获图像时剪切特定部分。如下所示
请帮帮我。
我试过了,我不得不裁剪矩形形状,而不是自定义形状。这是我为矩形做的代码
val bh = bitmap.height
val bw = bitmap.width
val width = vF_atv_camera_preview!!.width;
val height = vF_atv_camera_preview!!.height;
val location = IntArray(2)
vL_atv_box!!.getLocationOnScreen(location);
val l = location[0] * bw / width
val t = location[1] * bh / height
val w = vL_atv_box!!.getWidth() * bw / width;
val h = vL_atv_box!!.getHeight() * bh / height;
val resizedBitmap = Bitmap.createBitmap(bitmap, l, t, w, h);
【问题讨论】:
请贴出代码。以便我们知道您到目前为止尝试了什么。 【参考方案1】:您可以将 Camera2 预览投影到 TextureView(它比 SurfaceView 更灵活和“易于管理”),然后在其下方放置一个普通的“ImageView”,在其 Drawable 中有这两个孔。
如您所见,中心有一个小的 TextureView,其顶部和底部有两个 ImageView,显示渐变(白色到透明的 Shape Drawable),但纵向模式下的相机正在填充整个空白区域。
【讨论】:
谢谢!我如何从中裁剪特定部分。请您详细说明一下。这将非常有帮助。 感谢您的更新!但似乎我不会得到裁剪的图像。我想要裁剪孔图像的位图。 @user 获取孔的位图并保持预览稳定的帧速率可能是不可能的,因为设备不能足够快地裁剪位图以确保平滑预览。如果您对单个“屏幕截图”感兴趣,您可以拍摄预览图像,然后使用位图蒙版对其进行裁剪。以上是关于根据放置在相机上的视图裁剪图像的特定部分的主要内容,如果未能解决你的问题,请参考以下文章