android开发替换bitmap中的颜色值[转]

warning: 这篇文章距离上次修改已过1263天,其中的内容可能已经有所变动。

看到个好文章,故收藏之[codesyntax lang="java"]

/**
* 将bitmap中的某种颜色值替换成新的颜色
* @param bitmap
* @param oldColor
* @param newColor
* @return
*/
public static Bitmap replaceBitmapColor(Bitmap oldBitmap,int oldColor,int newColor)
{
//相关说明可参考 http://xys289187120.blog.51cto.com/3361352/657590/
Bitmap mBitmap = oldBitmap.copy(Config.ARGB_8888, true);
//循环获得bitmap所有像素点
int mBitmapWidth = mBitmap.getWidth();
int mBitmapHeight = mBitmap.getHeight();
int mArrayColorLengh = mBitmapWidth * mBitmapHeight;
int[] mArrayColor = new int[mArrayColorLengh];
int count = 0;
for (int i = 0; i < mBitmapHeight; i++) {
for (int j = 0; j < mBitmapWidth; j++) {
//获得Bitmap 图片中每一个点的color颜色值
//将需要填充的颜色值如果不是
//在这说明一下 如果color 是全透明 或者全黑 返回值为 0
//getPixel()不带透明通道 getPixel32()才带透明部分 所以全透明是0x00000000
//而不透明黑色是0xFF000000 如果不计算透明部分就都是0了
int color = mBitmap.getPixel(j, i);
//将颜色值存在一个数组中 方便后面修改
if (color == oldColor) {
mBitmap.setPixel(j, i, newColor); //将白色替换成透明色
}

}
}
return mBitmap;
}


[/codesyntax]

 

使用方法:

[codesyntax lang="java"]

BitmapUtil.replaceBitmapColor(bitmap,Color.WHITE, Color.TRANSPARENT);


[/codesyntax]

 

none
最后修改于:2019年06月12日 14:31

已有 8 条评论

  1. 测试账号,测试评论

  2. 欢迎再次光临

  3. 无意溜达到了你的网站 留下足迹

    1. 诸葛先生

      谢谢支持

  4. 来瞅瞅啦~

  5. Fossa

    找了好久了,终于找到有用的了 ,谢谢楼主。

  6. 诸葛先生

    评论测试

添加新评论