Android图像处理,像素颜色和阴影

时间:2013-07-05 21:56:23

标签: android bitmap

我正在使用彩色托盘应用程序,我必须生成不同颜色的颜色,并将其转换为其他颜色和颜色。 这是从位图获取所有像素的代码。

这里mImage是我的位图。

        int width = mImage.getWidth();
        int height = mImage.getHeight();
        int[] pixels = new int[width * height];
        mImage.getPixels(pixels, 0, width, 0, 0, width, height);

您可以进一步查看可能告诉您如何生成阴影的链接。

问题:我得到的所有颜色都是整数值,如-34454323。 我非常困惑如何找到给定的整数代码是一些纯色的阴影或本身是纯色。

另一个问题:是否有任何直接的方法可以将像素的色调和饱和度属性更改为某个目标像素。

喜欢将深蓝色像素转换为浅红色像素。

2 个答案:

答案 0 :(得分:0)

你可以使用BitmapShader,这是一个很好的教程,来自Romain Guy http://www.curious-creature.org/2012/12/13/android-recipe-2-fun-with-shaders/

答案 1 :(得分:0)

您遇到此类奇怪错误的原因是因为getPixels返回并且数组为“packed ints” - 每个都代表一个Color对象(请参阅完整文档here)。 int的每个8位分别是B,G,R颜色。

如果您想要像素的RGB的精确值,您需要执行类似

的操作
// code untested
int R = (intcolor >> 16) & 0xff;
int G = (intcolor >> 8) & 0xff;
int B = intcolor & 0xff;