Java Android位图更改色调

Java Android位图更改色调,java,android,colors,bitmap,hue,Java,Android,Colors,Bitmap,Hue,我有一个Android位图,我正在尝试更改图像的色调,因为图像是一个红色块,我想通过更改色调将该块更改为绿色,但我似乎在任何地方都找不到任何代码 有人知道我怎么做吗 画布我相信您不会找到一个简单的“色调”刻度盘来调整图像的颜色 你能得到的最接近的近似值(应该是0)是ColorMatrix 它的答案对这个问题有很大的启发 以下是ColorMatrix的定义: ColorMatrix is a 5x4 matrix for transforming the color+alpha component

我有一个Android位图,我正在尝试更改图像的色调,因为图像是一个红色块,我想通过更改色调将该块更改为绿色,但我似乎在任何地方都找不到任何代码

有人知道我怎么做吗


画布

我相信您不会找到一个简单的“色调”刻度盘来调整图像的颜色

你能得到的最接近的近似值(应该是0)是ColorMatrix

它的答案对这个问题有很大的启发

以下是ColorMatrix的定义:

ColorMatrix is a 5x4 matrix for transforming the color+alpha components of a Bitmap.
 The matrix is stored in a single array, and its treated as follows: 
  [ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t ] 

 When applied to a color [r, g, b, a], the resulting color is computed as (after clamping)
         R' = a*R + b*G + c*B + d*A + e;
         G' = f*R + g*G + h*B + i*A + j;
         B' = k*R + l*G + m*B + n*A + o;
         A' = p*R + q*G + r*B + s*A + t; 

好吧,如果你所追求的是“变红为绿”,你可以只切换R和G颜色成分。原语,但可以为你做这项工作

private Bitmap redToGreen(Bitmap mBitmapIn)
{
    Bitmap bitmap = mBitmapIn.copy(mBitmapIn.getConfig(), true);

    int []raster = new int[bitmap.getWidth()];

    for(int line = 0; line < bitmap.getHeight(); line++) {
        bitmap.getPixels(raster, 0, bitmap.getWidth(), 0, line, bitmap.getWidth(), 1);

        for (int p = 0; p < bitmap.getWidth(); p++)
            raster[p] = Color.rgb(Color.green(raster[p]), Color.red(raster[p]), Color.blue(raster[p]));

        bitmap.setPixels(raster, 0, bitmap.getWidth(), 0, line, bitmap.getWidth(), 1);
    }

    return bitmap;
}
私有位图redToGreen(位图mBitmapIn)
{
位图Bitmap=mBitmapIn.copy(mBitmapIn.getConfig(),true);
int[]光栅=新的int[bitmap.getWidth()];
对于(int line=0;line
如果在
图像视图中包装位图,有一种非常简单的方法:

ImageView iv = new ImageView(this);
iv.setImageBitmap(yourBitmap);
iv.setColorFilter(Color.RED);

如果您想在屏幕上显示它,您可能希望将其包装在一个
图像视图中。

可能重复我试图通过应用色调更改来更改android位图,您链接的问题似乎没有那么重要。在android Studio中,您可以“导入名为“渲染脚本内在”的示例”,其中包括演示如何使用ScriptIntrinsicColorMatrix快速调整位图的色调。