小编use*_*982的帖子

Android - 读取没有alpha的PNG图像并解码为ARGB_8888

我尝试从sdcard(在模拟器中)读取图像,然后用.创建一个Bitmap图像

BitmapFactory.decodeByteArray

方法.我设置了选项:

options.inPrefferedConfig = Bitmap.Config.ARGB_8888
options.inDither = false

然后我将像素提取到ByteBuffer中.

ByteBuffer buffer = ByteBuffer.allocateDirect(width*height*4)
bitmap.copyPixelsToBuffer(buffer)

我在JNI中使用此ByteBuffer将其转换为RGB格式并想要计算它.

但总是我得到错误的数据 - 我在不修改ByteBuffer的情况下进行测试.我唯一要做的就是将它放入JNI的本机方法中.然后将其转换为a unsigned char*并将其转换回a,ByteBuffer然后将其返回到Java.

unsigned char* buffer = (unsinged char*)(env->GetDirectBufferAddress(byteBuffer))
jobject returnByteBuffer = env->NewDirectByteBuffer(buffer, length)

在显示图像之前,我得到了数据

bitmap.copyPixelsFromBuffer( buffer )

但其中有错误的数据.

我的问题是,如果这是因为图像内部转换为RGB 565或这里有什么问题?

.....

得到答案:

- >>>是的,它在内部转换为RGB565.

有人知道如何使用ARGB8888像素格式从PNG创建这样的位图图像吗?

如果有人有想法,那就太好了!

png android image bitmap argb

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

argb ×1

bitmap ×1

image ×1

png ×1