我在图像视图中对位图图像应用不同的效果。此图像来自mainactivity。
以下是代码:
Bundle extras=getIntent().getExtras();
//b=(Bitmap)extras.get("img");
byte[] byteArray=extras.getByteArray("img");
bmp=BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
camphoto=(ImageView)findViewById(R.id.camimage);
camphoto.setImageBitmap(bmp);
和这样的效果:
case R.id.btnsepia:
BitmapDrawable abmp = (BitmapDrawable)camphoto.getDrawable();
bmp = abmp.getBitmap();
Bitmap bmOut=Bitmap.createBitmap(createSepiaToningEffect(bmp, 3, .89, .66, .5));
camphoto.setImageBitmap(bmOut);
break;
现在我要撤消效果,以便在图像视图中返回原始图像。
答案 0 :(得分:0)
这是不可能的。
位图对象不会自动记录应用于它的所有更改,因此您只需调用bitmap.undo();
之类的内容即可。即使这是可能的,它也不会起作用,因为您从源图像生成一个全新的位图并产生效果。原始图像不再包含在新图像中。
您必须自己跟踪更改。也许只是通过意图中的原始和修改后的图像将满足您的需求。