我有一个像这样的 3 维字节数组:
byte[][][] data = pyf.callAttr("test", red,green,blue).toJava(byte[][][].class);
这里是byte[0]
,其中包含具有红色 channel 像素值的二维数组
byte[0]
是一个 480x360
数组,与 byte[1]
和 byte[2]
相同分别持有绿色和蓝色
现在我想从这个 3 维字节数组创建一个 360x480
java 位图图像
最佳答案
问题的某些部分我不清楚,比如你是否要旋转图像(480x360 到 360x480 部分)。
所以,我假设以下事情:
(1) 你有一个名为 data 的正确字节数组,它包含你所描述的数据
(2) 你需要从数据中创建位图
(3) 如有必要,您可以旋转图像(即以下代码不会旋转图像)
- 以下代码未经测试。但它应该能让您走上正轨。
int width = 480;
int height = 360;
int alpha = 1; // change alpha as necessary
Bitmap bmp = Bitmap.createBitmap(width, height, Config.ARGB_8888);
for(int x=0; x<width; x++) {
for(int y=0; y<height; y++) {
int red = data[0][x][y];
int green = data[1][x][y];
int blue = data[2][x][y];
int color = Color.argb(alpha, red, green, blue);
bmp.setPixel(x, y, color);
}
}
关于java - 从包含 3 channel 像素信息的 3d 字节数组创建 java 位图图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62968604/