Java 如何揉搓图像?
我想摩擦图像。实际上,我有两个图像,一个在前景,另一个在背景,当我摩擦图像时,背景图像将不得不来如何做?我在这里发现了很多,但还不能得到解决方案。所以有人请帮我解决这个问题。 我试过这个:Java 如何揉搓图像?,java,android,android-intent,Java,Android,Android Intent,我想摩擦图像。实际上,我有两个图像,一个在前景,另一个在背景,当我摩擦图像时,背景图像将不得不来如何做?我在这里发现了很多,但还不能得到解决方案。所以有人请帮我解决这个问题。 我试过这个: public class MainActivity extends Activity { ImageView img; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
public class MainActivity extends Activity {
ImageView img;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
// img = (ImageView) findViewById(R.id.img);
//
// new Panel(this);
setContentView(new Panel(this));
}
class Panel extends View {
private Bitmap mBitmap;
private Canvas mCanvas;
private Path mPath;
private Paint mPaint;
Bitmap bitmap;
Canvas pcanvas;
int x = 0;
int y = 0;
int r = 0;
public Panel(Context context) {
super(context);
Log.v("Panel", ">>>>>>");
setFocusable(true);
setBackgroundColor(Color.MAGENTA);
// setting paint
mPaint = new Paint();
mPaint.setAlpha(1);
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
mPaint.setAntiAlias(true);
// getting image from resources
Resources r = this.getContext().getResources();
Bitmap bm = BitmapFactory.decodeResource(getResources(),
R.drawable.verse);
// converting image bitmap into mutable bitmap
// bitmap = Bitmap.createBitmap(295, 260, Config.ARGB_8888);
bitmap = Bitmap.createBitmap(185, 120, Config.ARGB_8888);
pcanvas = new Canvas();
pcanvas.setBitmap(bitmap); // drawXY will result on that Bitmap
pcanvas.drawBitmap(bm, 0, 0, null);
}
@Override
protected void onDraw(Canvas canvas) {
// draw a circle that is erasing bitmap
// pcanvas.drawCircle(x, y, r, mPaint);
pcanvas.drawColor(color.transparent);
canvas.drawBitmap(bitmap, 0, 0, null);
super.onDraw(canvas);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// set paramete to draw circle on touch event
x = (int) event.getX();
y = (int) event.getY();
r = 20;
// Atlast invalidate canvas
invalidate();
return true;
}
}
}
您可能希望尝试使用/,此线程可能会帮助您: 要硬设置可以使用的颜色
int[] pix=new int[bitmap.getWidth()*bitmap.getHeight()];
bitmap.getPixels(pix, 0, 0, bitmap.getWidth(), bitmap.getHeight);
// do some processing here
// possible set color of some pixels to Color.TRANSPARENT
bitmap.setPixels(pix, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
你能告诉我在你的链接中你提供给我的代码中我应该把我的图像放在哪里吗?对不起,这可能现在可以工作了。但是你可以将像素设置为透明