【发布时间】:2026-01-23 15:10:01
【问题描述】:
我正在尝试将图像左半部分用橙色着色,右半部分用栗色着色。我编写了我的代码,但每当我尝试时,它只返回纯橙色和栗色。所以这就是我想要做的。
我想用适量的橙色和栗色给左右着色,这样会像
像这样,我的不像示例那样工作。这是我的代码。
public Bitmap toHokie(Bitmap bmpOriginal) {
int width, height;
Bitmap bmOut = Bitmap.createBitmap(bmpOriginal.getWidth(),
bmpOriginal.getHeight(), bmpOriginal.getConfig());
height = bmOut.getHeight();
width = bmOut.getWidth();
int orangeFilter = new Color().rgb(255, 165, 0);
int maroonFilter = new Color().rgb(139, 0, 0);
for (int j = 0; j < height - 1; j++) {
for (int i = 0; i < width / 2 - 1; i++) {
int newColor = (int) ((double) (bmOut.getPixel(i, j) * 0.3) + ((double) (orangeFilter * 0.7)));
bmOut.setPixel(i, j, newColor);
}
}
for (int j = 0; j < height - 1; j++) {
for (int i = width / 2; i < width - 1; i++) {
double newColor = (bmOut.getPixel(i, j) * 0.3 + maroonFilter * 0.7);
bmOut.setPixel(i, j, (int) newColor);
}
}
return bmOut;
}
其实,我第二次尝试,现在比以前好多了,但还是连线……像这样
我是这样解决的。
public Bitmap toHokie(Bitmap bmpOriginal) {
int width, height;
Bitmap bmOut = Bitmap.createBitmap(bmpOriginal.getWidth(),
bmpOriginal.getHeight(), bmpOriginal.getConfig());
height = bmOut.getHeight();
width = bmOut.getWidth();
int orangeFilter = new Color().rgb(255, 165, 0);
int maroonFilter = new Color().rgb(139, 0, 0);
for (int j = 0; j < height - 1; j++) {
for (int i = 0; i < width / 2 - 1; i++) {
int newColor = (int) ((bmpOriginal.getPixel(i, j) * 0.7) + ((orangeFilter * 0.3)));
bmOut.setPixel(i, j, newColor);
}
}
for (int j = 0; j < height - 1; j++) {
for (int i = width / 2; i < width - 1; i++) {
double newColor = (bmpOriginal.getPixel(i, j) * 0.3 + maroonFilter * 0.7);
bmOut.setPixel(i, j, (int) newColor);
}
}
return bmOut;
}
【问题讨论】:
-
添加颜色,然后为它们添加 alpha 属性,我认为应该这样做。
-
寻找相同的,你得到解决方案了吗?如果是,请您将其发布为答案,您将有机会获得一些积分,因为很多人都在寻找这个(查看 100 多次)
标签: android colors bitmap tint