如何通过自定义相机活动从白色圆圈覆盖中获取图像



我遇到了很大的麻烦。

我需要实现自定义相机功能,我想做的就是根据相机活动中的覆盖图像区域裁剪图像。

请查看图像

在相机屏幕图像将显示圆形覆盖,而如果我按下捕获按钮,它将只占据图像区域的圆形部分并保存在SD卡中。

要裁剪圆形,您可以使用一个名为OpenCV的库,该库将允许您对从相机获得的帧执行功能。

例如http://opencvexamples.blogspot.com/2014/02/crop-elliptical-region-from-image.html

要找出需要裁剪的区域的坐标,您应该获得覆盖相对于帧分辨率或用于显示它的显示小部件的坐标。您可以通过"运动事件"获得用户放置圆的确切坐标。

如果使用Android Studio进行开发,则可以导入此库。

将以下内容添加到您的build.gradle

dependencies {
    compile 'com.makeramen:roundedimageview:2.2.1'
}

就是一个例子

<com.makeramen.roundedimageview.RoundedImageView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/imageView1"
    android:src="@drawable/photo1"
    android:scaleType="fitCenter"
    app:riv_corner_radius="30dip"
    app:riv_border_width="2dip"
    app:riv_border_color="#333333"
    app:riv_mutate_background="true"
    app:riv_tile_mode="repeat"
    app:riv_oval="true" />

请检查此项以获取更多信息

最新更新