2016-05-17 46 views
0

所以我有一个巨大的问题。我不能解决它多年,所以请任何人都可以帮助 - 这将是惊人的。 所以问题出在ColorMatrix上。正如你在图片中看到的,当我在照片上添加效果并将其保存到我的记忆中时,我会在左边看到一张带有白线的图片。有趣的是,当我将对比度增加到7时,这条线变得越来越大。所以我猜想的问题是对比度和亮度。无论如何,它的效果很好,而且我满意的任何其他事情......只有这一个错误会让我有一天会杀死我,我猜。任何帮助? 我的代码:使用Colormatrix的白线bug

public void effect(View view) { 
    float contrast = 1; 
    float brightness = 0; 


    Bitmap.Config config = bmp.getConfig(); 
    if (config == null) { 
     config = Bitmap.Config.ARGB_8888; 
    } 

    operation = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), config); 


    ColorMatrix cm = new ColorMatrix(new float[] 
      { 
        contrast, 0, 0, 0, brightness, 
        0, contrast, 0, 0, brightness, 
        0, 0, contrast, 0, brightness, 
        0, 0, 0, 1, 0, 
        0, 0, 0, 0, 1 
      }); 
    Canvas canvas = new Canvas(operation); 

    Paint paint = new Paint(); 
    paint.setColorFilter(new ColorMatrixColorFilter(cm)); 
    canvas.drawBitmap(bmp, contrast, brightness, paint); 

    imageview.setImageBitmap(operation); 


} 

IMAGE OF BUG. The white line in the left

任何人谁将会在这方面帮助。谢谢!

+0

什么是经过'contrast'和'brightness'为'x'和'y'在'canvas.drawBitmap(BMP,对比度,亮度,油漆)的隐藏的想法' ? – pskink

+0

@pskink我在学校学到最后我需要这样写。你的报价是?如果你能分享你的想法如何解决这个问题,我会非常感激。 – BENZG55

回答

0

所以我想发布答案我的问题。 我很笨......- x和y必须是0 0而不是写对比度和亮度。

解决行:

canvas.drawBitmap(bmp, 0, 0, paint);