一贯风格直接上代码,
一直以为颜色替换会使很高深的东西,今天自己项目需要写了一下,so easy
public Bitmap replaceBitmapColor(Bitmap oldBitmap, int oldColor, int newColor) { Bitmap mBitmap = oldBitmap.copy(Bitmap.Config.ARGB_8888, true); int mBitmapWidth = mBitmap.getWidth(); int mBitmapHeight = mBitmap.getHeight(); for (int i = 0; i < mBitmapHeight; i++) { for (int j = 0; j < mBitmapWidth; j++) { int color = mBitmap.getPixel(j, i); if (color == oldColor) {
//将被替换色替换为需要替换成的颜色附近的值,都替换为相同的颜色略显单调 mBitmap.setPixel(j, i, (int) (newColor + Math.random() * 100000)); } } } return mBitmap; }