在我的一个应用程序中,我需要使位图的部分模糊...
我需要允许用户计算移动并使位图模糊部分。
如何申请? 如果有可能?如果是,那么如何????
我访问了This site,但没有获得丰硕的成果
我该怎么做?有可能吗?
我做到了:
mPaint.setAlpha(10);
// mPaint.setStyle(Style.FILL);
//mPaint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
mPaint.setMaskFilter(new BlurMaskFilter(30, BlurMaskFilter.Blur.INNER));
paint.setStyle(Style.STROKE);
mPaint.setAntiAlias(true);
mPaint.setAntiAlias(true);
mPath = new Path();
mPath.offset(30, 30);
paths.add(new PathPoints(mPath, color, false, strokWidth));
mCanvas = new Canvas();
c2 = new Canvas();
// this.setDrawingCacheEnabled(true);
c2.setBitmap(Transparent);
和
protected void onDraw(Canvas canvas1) {
canvas = canvas1;
// === canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
canvas.drawBitmap(Transparent, 0, 0, mBitmapPaint);
c2.drawBitmap(Bitmap2, 0, 0, mBitmapPaint);
// canvas.drawBitmap(Transparent, 0, 0, mBitmapPaint);
// canvas.drawBitmap(Transparent, 0, 0, null);
// c2.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
for (PathPoints p : paths) {
//mPaint.setColor(p.getColor());
mPaint.setStrokeWidth(p.getStrokWidth());
Log.v("", "Color code : " + p.getColor());
if (p.isTextToDraw()) {
canvas.drawText(p.textToDraw, p.x, p.y, mPaint);
} else {
// if(isTouched)
// {
// canvas.drawPath(p.getPath(), mPaint);
c2.drawPath(p.getPath(), mPaint);
}
}
//
// invalidate();
}
答案 0 :(得分:1)
这里的想法并不复杂。 您静态创建图像的模糊版本(Renderscript可能吗?) 然后在画布上绘制原始图像。 此时,当用户触摸画布时,您在触摸区域中绘制模糊位图的一部分。 为了达到这个目的,你可能想尝试一些PorterDuff蒙版,以使它看起来很漂亮(就像有一个alpha蒙版来绘制模糊部分,以便更好地与原始图像混合)。