【发布时间】:2012-09-26 12:15:28
【问题描述】:
我在一个 android 项目中工作,我必须更改墙壁的颜色。例如,如果我拍摄有角落的墙的照片并选择一些颜色,比如蓝色。墙壁的颜色应该以这样的方式变化,使墙壁看起来好像是用这种颜色粉刷的。我的意思是说改变颜色后应该保留墙角的阴影。墙不应该看起来像画成扁平的矩形。
请告诉我怎么做。
提前致谢。 问候
【问题讨论】:
标签: android bitmap paint colormatrix
我在一个 android 项目中工作,我必须更改墙壁的颜色。例如,如果我拍摄有角落的墙的照片并选择一些颜色,比如蓝色。墙壁的颜色应该以这样的方式变化,使墙壁看起来好像是用这种颜色粉刷的。我的意思是说改变颜色后应该保留墙角的阴影。墙不应该看起来像画成扁平的矩形。
请告诉我怎么做。
提前致谢。 问候
【问题讨论】:
标签: android bitmap paint colormatrix
【讨论】:
这是我为完成它所做的事情:
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;
}
【讨论】: