从3个字节的数组创建位图图像

时间:2019-01-28 14:27:08

标签: java android bitmap

我想从三个字节数组创建位图图像: Range_R代表红色。 Range_G代表绿色。 Range_B代表蓝色。 如何在android studio中做到这一点?

这是我的代码,但我不确定,因为生成的图像与原始图像的颜色不同。

for (int i = 0; i < srcImg.getWidth(); i++) {
        for (int j = 0; j < srcImg.getHeight(); j++) {
            int pixel = srcImg.getPixel(i, j);
            byte Red = (byte) Color.red(Range_R[i][j]);
            byte Green = ((byte) Color.green(Range_G[i][j]));
            byte Blue = (byte) Color.blue(Range_B[i][j]);
            int alpha = Color.alpha(pixel);
            newimage.setPixel(i, j, argb(alpha,Red, Green, Blue));
        }
    }

1 个答案:

答案 0 :(得分:0)

请勿在此处使用participants.splice(participants.map(x => x.username).indexOf(username),1); 。这些用于从更大的位域(Color.red()/green()/blue())中提取字节大小的值。您已经说过这些是int/long数组,因此这些值已经具有正确的大小,并且可能是小数位数。

此外,还应确保byteRedGreen都在[0..255]范围内。一些数组成员可能是负数;在这种情况下,您必须将其值增加256:

Blue

...等等。这是为了满足argb()的输入规范。

相关问题