我有一个位图,我试图将数据作为rgba字节数组。我可以if (randomNum == 1,24,25,48,49,72,73,96,97,120,121,144,145,168,169)
blnRand=true;
else
blnRand=false;
,但这不是rgba字节。我的最终目的是将其提供给HTML5画布,每个像素需要4个元素(r,g,b,a)。这可能吗?
这是我用来获取bmp的代码:
bmp.getPixels
我试过了:
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
// can do bmp.getPixels here but it doesnt give RGBA :(
但是缓冲区的内容非常奇怪,它对我来说看起来不像rgba,它看起来像这样:
bmp.copyPixelsToBuffer(ByteBuffer.wrap(buffer));
那些[ 54, 59, 64, -1, 54, 59, 64, -1,
特别奇怪。
答案 0 :(得分:1)
这里已经提出了问题,我相信这是对你的暗示。
答案 1 :(得分:1)
像素数组的每个元素都是一个int,包含argb值。你可以得到这样的价值:
int alpha = Color.alphpa(pixel);
int red = Color.red(pixel);
int green = Color.green(pixel);
int blue = Color.blue(pixel);
答案 2 :(得分:0)
因此像素的RGBA按位操作起作用。
但copyPixelsToBuffer
也有效,唯一的问题是我必须将alpha从-1更改为255并且它也匹配RGBA按位操作方法。
谢谢大家的帮助!