我正在一个安卓项目中工作,需要更改墙壁的颜色。例如,如果我拍摄了一张有角落的墙壁照片,并选择了蓝色,那么墙壁的颜色应该以这种方式改变,使得墙壁看起来像是被这种颜色涂过。我的意思是,在更改颜色后,墙壁的角落阴影应该保留,而不是看起来像平面矩形被涂上颜色。
请告诉我如何实现。
提前感谢。 敬礼
请告诉我如何实现。
提前感谢。 敬礼
public static Bitmap changeImageColor(Bitmap srcBmp, int dstColor) {
int width = srcBmp.getWidth();
int height = srcBmp.getHeight();
float srcHSV[] = new float[3];
float dstHSV[] = new float[3];
Bitmap dstBitmap = Bitmap.createBitmap(width, height, Config.RGB_565);
for (int row = 0; row < height; row++) {
for (int col = 0; col < width; col++) {
Color.colorToHSV(srcBmp.getPixel(col, row), srcHSV);
Color.colorToHSV(dstColor, dstHSV);
// If it area to be painted set only value of original image
dstHSV[2] = srcHSV[2]; // value
dstBitmap.setPixel(col, row, Color.HSVToColor(dstHSV));
}
}
return dstBitmap;
}