0

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

这里 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。我对如何找到给定的整数代码是某种纯色的阴影或本身是纯色感到非常困惑。

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

就像将深蓝色像素转换为浅红色像素一样。

4

2 回答 2

0

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

于 2013-07-05T22:02:54.733 回答
0

您收到这种奇怪错误的原因是因为 getPixels 返回和数组“打包整数” - 每个代表一个Color对象(请参阅此处的完整文档)。int 的每个 8 位分别为 B、G、R 颜色。

如果你想要一个像素的 RGB 的确切值,你需要做类似的事情

// code untested
int R = (intcolor >> 16) & 0xff;
int G = (intcolor >> 8) & 0xff;
int B = intcolor & 0xff;
于 2013-07-05T22:07:50.213 回答