Android Studio Blur Конкретная область изображения с заданными координатами размытой области - PullRequest
0 голосов
/ 08 марта 2019

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

Это код, который у меня сейчас есть, который размывает все изображение.

    int widthBlur = Math.round(image.getWidth() * BITMAP_SCALE);
    int heightBlur = Math.round(image.getHeight() * BITMAP_SCALE);

    Bitmap inputBitmap = Bitmap.createScaledBitmap(image, widthBlur, heightBlur, false);
    Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);

    RenderScript rs = RenderScript.create(this);
    ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
    Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap);
    Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
    theIntrinsic.setRadius(BLUR_RADIUS);
    theIntrinsic.setInput(tmpIn);
    theIntrinsic.forEach(tmpOut);
    tmpOut.copyTo(outputBitmap);

    return outputBitmap;

В настоящее время я не использую x1, x2, y1 и y2, но это те координаты, которые у меня есть на изображении, которые дают прямоугольник на изображении, которое я хочу размыть. (x2-x1 дает ширину прямоугольника, а y2-y1 дает высоту прямоугольника).

...