JNI C++ 到 Java 32 位图像显示不正确

JNI C++ to Java 32 bit image not showing properly

我有以下 JNI 的 C++ 代码

和下面的Java代码创建一个32位的缓冲图像,大小也是通过JNI接收的

似乎一切正常,只是图像中有一些奇怪的颜色,我不知道如何正确处理

一张图片的结果:

这不就是按颜色成分的顺序混合吗?

我不熟悉这些函数中的任何一个,但我相信 DIB_RGB_COLORS 为您提供了 “blue, green, red, reserved” order, whereas TYPE_4BYTE_ABGR is expecting the components in the “alpha, blue, green, red” 顺序的组件。