Как размыть определенную часть изображения с помощью объекта RectF в Android с помощью Canvas?

   public void draw(Canvas canvas) {
    Log.d(TAG, "on draw text graphic");
    if (element == null) {
        throw new IllegalStateException("Attempting to draw a null text.");
    }

    // Draws the bounding box around the TextBlock.
    RectF rect = new RectF(p,q,r,s);
    canvas.drawRect(rect, rectPaint);

    // Renders the text at the bottom of the box.
    canvas.drawText(text, rect.left, rect.bottom, textPaint);

У меня есть координаты на изображении (p,q,r,s), и я хочу размыть только эту область, сейчас я рисую прямоугольник вокруг нее. Если с помощью canvas это возможно, было бы здорово, но приветствуются и другие методы.

Я просмотрел другие статьи, и все ссылаются на RenderScript и размытие всего изображения или размывание текстового представления. Я не использую здесь текстовое представление, а просто GraphicOverlay, который динамически создает прямоугольники (цель состоит в том, чтобы размывать эту часть), учитывая координаты.

Вот вид макета:

<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

<ImageView
    android:id="@+id/image_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:contentDescription="Select image for text recognition"
    android:scaleType="fitStart"
    app:layout_constraintBottom_toTopOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="parent" />

<com.example.sengu.test_1.GraphicOverlay
    android:id="@+id/graphic_overlay"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true" />

<Button
    android:id="@+id/capture_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintBottom_toTopOf="@id/button_text"
    android:text="Capture" />

<Button
    android:id="@+id/button_text"
    android:text="Find text"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toLeftOf="@id/button_translate_text"
    app:layout_constraintBottom_toBottomOf="parent"/>

</android.support.constraint.ConstraintLayout>

0 ответов

Другие вопросы по тегам