如何在图像视图上应用两个或更多颜色矩阵

时间:2012-10-23 09:48:23

标签: android bitmap mask android-image

需要帮助
我有代码来设置像这样的亮度图像

float fb = (fbri *1.5f);
        ColorMatrix cmB = new ColorMatrix();
        cmB.set(new float[] { 
            1, 0, 0, 0, fb,
            0, 1, 0, 0, fb,
            0, 0, 1, 0, fb,
            0, 0, 0, 1, 0   });

        ColorMatrix colorMatrix = new ColorMatrix();
        colorMatrix.set(cmB);

并且结果我保存到像这样的位图

Canvas c = new Canvas(b2);
        Paint paint = new Paint();
        ColorMatrixColorFilter f = new ColorMatrixColorFilter(colorMatrix);
        paint.setColorFilter(f);   
        c.drawBitmap(bbri, 0,0, paint);
        mImageView.setImageDrawable(new BitmapDrawable(getResources(),b2));

我也有代码设置像这样的反差图像

  float[] cntr = new float[] { 
                scale, 0    , 0   , 0, translate,
                0    , scale, 0   , 0, translate,
                0    , 0    ,scale, 0, translate, 
                0    , 0    , 0   , 1, 0          };
                matrix.set(cntr);   

而且我也保存到位图,它工作,但如果我同时运行亮度和对比度,它将显示白色图像因为它只是一个位图,并且该位图替换为编辑位图之前,如何为我的解决方案可以同时编辑亮度和对比度的图像,谢谢,

1 个答案:

答案 0 :(得分:0)

我不确定为什么到现在为止没人接你。 为了让你这样做,你是否创建了另一个扩展Bitmap或类的类 从原始位置创建不同的位图,然后在单击其他方法之前给它 bmp = null;