Как размыть определенную часть изображения с помощью объекта 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>