使ImageView以不同颜色显示图像的黑色部分

问题描述:

如何在ImageView中用透明颜色(或某种其他颜色)替换黑色?使ImageView以不同颜色显示图像的黑色部分

我用毕加索从网页加载图像:

Picasso.with(getContext()).load("www.abc.com/a.png").into(myImageView); 

目前,它看起来像这样:

enter image description here

图像本身就包含着黑色的背景,我想删除。我尝试使用myImageView.setColorFilter(Color.BLACK);,但似乎没有工作。

+0

@普里莫兹 'c0dehunter' Kralj看到我的回答希望这将帮助你。 –

+0

@ akhilesh0707 https://freesound.org/data/displays/186/186942_2594536_wave_M.png –

+0

正确;我想用一些不同的颜色替换它的黑色部分,或者在这些区域使它变得透明。 –

Andy Developer's answer帮助,但我不得不手动将黑色像素转换为我喜欢的像素。它正在工作,但我不确定这是否是最好的方法。

enter image description here

Picasso.with(getContext()).load(IMAGE_URL).into(new Target() { 
    @Override 
    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) 
    { 
     Bitmap copy = bitmap.copy(bitmap.getConfig(),true); 

     int [] allpixels = new int [copy.getHeight()*copy.getWidth()]; 
     copy.getPixels(allpixels, 0, copy.getWidth(), 0, 0, copy.getWidth(), copy.getHeight()); 

     int replacementColor = Color.parseColor("#34495E"); 
     for(int i = 0; i < allpixels.length; i++) { 
      if(allpixels[i] == Color.BLACK) 
       allpixels[i] = replacementColor; 
     } 

     copy.setPixels(allpixels, 0, copy.getWidth(), 0, 0, copy.getWidth(), copy.getHeight()); 

     myImageView.setImageBitmap(copy); 
    } 

    @Override 
    public void onBitmapFailed(Drawable errorDrawable) { } 

    @Override 
    public void onPrepareLoad(Drawable placeHolderDrawable) { } 
}); 

你可以试试这个。

Picasso.with(this).load("Your URL").into(new Target() { 
     @Override 
     public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) 
     { 
      bitmap.eraseColor(Color.argb(AAA,RRR,GGG,BBB)); 
      OR 
      bitmap.eraseColor(getResources().getColor(R.color.myColor)); 
      imageView.setBackground(new BitmapDrawable(bitmap)); 
     } 

     @Override 
     public void onBitmapFailed(Drawable errorDrawable) { 

     } 

     @Override 
     public void onPrepareLoad(Drawable placeHolderDrawable) { 

     } 
    }); 
+0

恐怕这不会取代我加载到imageview中的PNG中的黑色。 –

+0

@Primož'c0dehunter'Kralj:(你有没有试过吗? –

+0

是的,它什么也没做。我加载的PNG已经有黑色背景(我想删除它)。 –