android开发替换bitmap中的颜色值[转]
warning:
这篇文章距离上次修改已过2019天,其中的内容可能已经有所变动。
看到个好文章,故收藏之[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]
测试账号,测试评论
欢迎再次光临
无意溜达到了你的网站 留下足迹
谢谢支持
来瞅瞅啦~
找了好久了,终于找到有用的了 ,谢谢楼主。
谢谢支持
评论测试