如何转换从C++;要在Java中创建位图吗? 我接收一个字节数组,一个通道的宽度和高度 cv::MAT图像,从C++到JNI。在Java中,我需要创建一个位图,以便进一步处理。我尝试了标准选项,但无法解码位图(我一直得到null)。 JNI中的代码是 jbyteArray myJByteArray = env->NewByteArray(imageToScan.cols * imageToScan.rows); env->SetByteArrayRegion(myJByteArray, 0, imageToScan.cols * imageToScan.rows, (jbyte *) imageToScan.data);
我正在检查Java中接收到的数组长度、宽度和高度,它们都正常。现在,我尝试了以下方法:如何转换从C++;要在Java中创建位图吗? 我接收一个字节数组,一个通道的宽度和高度 cv::MAT图像,从C++到JNI。在Java中,我需要创建一个位图,以便进一步处理。我尝试了标准选项,但无法解码位图(我一直得到null)。 JNI中的代码是 jbyteArray myJByteArray = env->NewByteArray(imageToScan.cols * imageToScan.rows); env->SetByteArrayRegion(myJByteArray, 0, imageToScan.cols * imageToScan.rows, (jbyte *) imageToScan.data);,java,android,c++,opencv,bitmap,Java,Android,C++,Opencv,Bitmap,我正在检查Java中接收到的数组长度、宽度和高度,它们都正常。现在,我尝试了以下方法: BitmapFactory.Options options = new BitmapFactory.Options(); options.outHeight = height; options.outWidth = width; Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options
BitmapFactory.Options options = new BitmapFactory.Options();
options.outHeight = height;
options.outWidth = width;
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options);
但它不起作用。我知道我不能使用
BitmapFactory.decodeByteArray
,因为它只适用于压缩的位图,但不知道如何更正这一点。使用Bitmap.createBitmap(int[]颜色、int偏移量、int跨距、int宽度、int高度、位图.Config)
显然,第一个参数是未压缩的数组。我应该为stride和config设置什么值?