我正在尝试根据某些给定的坐标来模糊图像的特定部分。这些坐标在图像上组成一个矩形,我想模糊图像上的这个特定区域。我知道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给出矩形的高度)。