根据放置在相机上的视图裁剪图像的特定部分

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 获取孔的位图并保持预览稳定的帧速率可能是不可能的,因为设备不能足够快地裁剪位图以确保平滑预览。如果您对单个“屏幕截图”感兴趣,您可以拍摄预览图像,然后使用位图蒙版对其进行裁剪。

以上是关于根据放置在相机上的视图裁剪图像的特定部分的主要内容,如果未能解决你的问题,请参考以下文章

从相机胶卷导入图像并裁剪

从 Swift 中的自定义相机拍摄后裁剪图像

从图像视图中捏和图像并获得它的特定部分?

使用 Objective C 自定义相机捕捉图像和裁剪

如何从相机中裁剪图像

如何在 OpenCV c++ 中从图像中裁剪特定的矩形部分(ROI)