обрезка растрового изображения на основе наложения в Android - Camera API 2 - PullRequest
1 голос
/ 27 мая 2019

Я использую Camera api для захвата изображений с идентификационных карт, у меня есть оверлей, как показано на рисунке ниже. Я хочу обрезать изображение в коробке. не могли бы вы подсказать, как именно это должно быть сделано. Я записал то, что я пытался, и результаты, которые он мне дал.

Это скриншот идентификатора, который я хочу захватить ..

enter image description here

Выход.

enter image description here

белая прямоугольная коробка - фоторамка, которая находится в центре в Относительном расположении

<View
    android:id="@+id/photo_frame"
    android:layout_width="match_parent"
    android:layout_height="212dp"
    android:background="@drawable/bg_photo_frame"
    android:layout_centerInParent="true"
    android:layout_margin="@dimen/double_padding"
    android:visibility="visible"/>

Как рассчитать этот кадр, чтобы вырезать изображение

это то, что я должен вырезать изображение, которое нуждается в модификации, но не уверен, какой путь вперед

       public Bitmap cutImage(final Bitmap srcBmp, final int pixepWidth, final int pixelsHeight, float widthRatio) {
//        Bitmap croppedBitmap = Bitmap.createBitmap(bitmap, 20, 20, pixepWidth, pixelsHeight);
//        return croppedBitmap;
        Bitmap dstBmp;
        if (srcBmp.getWidth() >= srcBmp.getHeight()){

            dstBmp = Bitmap.createBitmap(
                    srcBmp,
                    srcBmp.getWidth()/2 - srcBmp.getHeight()/2,
                    0,
                    srcBmp.getHeight(),
                    srcBmp.getHeight()
            );

        }else{

            dstBmp = Bitmap.createBitmap(
                    srcBmp,
                    0,
                    srcBmp.getHeight()/2 - srcBmp.getWidth()/2,
                    srcBmp.getWidth(),
                    srcBmp.getWidth()
            );
        }

        return dstBmp;
    }
...