如何在imageview.i中的位图图像上应用撤消操作。想要撤消效果

时间:2014-05-15 08:59:04

标签: android

我在图像视图中对位图图像应用不同的效果。此图像来自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;

现在我要撤消效果,以便在图像视图中返回原始图像。

1 个答案:

答案 0 :(得分:0)

这是不可能的。

位图对象不会自动记录应用于它的所有更改,因此您只需调用bitmap.undo();之类的内容即可。即使这是可能的,它也不会起作用,因为您从源图像生成一个全新的位图并产生效果。原始图像不再包含在新图像中。

您必须自己跟踪更改。也许只是通过意图中的原始和修改后的图像将满足您的需求。