如果您对如何在jni中将jbyteArray转换为本地char*?感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于如何在jni中将jbyteArray转换为本地char*?的
如果您对如何在jni中将jbyteArray转换为本地char *?感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于如何在jni中将jbyteArray转换为本地char *?的详细内容,我们还将为您解答jbytearray 如何转unsignedchar的相关问题,并且为您提供关于actionscript-3 – 如何将bytearray转换为图像或图像到bytearray?、android – JNI:如何获得jbyteArray大小、android – 如何将jbyteArray转换为Mat?、arrays – Shell – 如何在Bash中将String转换为Byte数组的有价值信息。
本文目录一览:- 如何在jni中将jbyteArray转换为本地char *?(jbytearray 如何转unsignedchar)
- actionscript-3 – 如何将bytearray转换为图像或图像到bytearray?
- android – JNI:如何获得jbyteArray大小
- android – 如何将jbyteArray转换为Mat?
- arrays – Shell – 如何在Bash中将String转换为Byte数组
如何在jni中将jbyteArray转换为本地char *?(jbytearray 如何转unsignedchar)
我正在尝试在jni中将jbyteArray转换为本地c字符串(char
*)?不幸的是,我找不到有关该操作的任何文档。我正在C代码中使用以下原型调用Java函数。
public static byte[] processFile(byte[] p_fileContent)
在C代码中,我正在调用此函数,该函数返回一个字节数组。该字节数组的内容是一个Java字符串。但是我需要将其转换为ac字符串。
jbyteArray arr = (jbyteArray) env->CallObjectMethod(clsH, midMain, jb);printf("%s\n", (char*) arr);
答案1
小编典典相信您会使用GetByteArrayElements
和ReleaseByteArrayElements
。就像是:
boolean isCopy;jbyte* b = GetByteArrayElements(env, arr, &isCopy);
你应该能够投b
给char*
在这一点上,以访问数组中的数据。请注意,这可能会创建数据的副本,因此您需要确保使用释放内存ReleaseByteArrayElements
:
ReleaseByteArrayElements(env, arr, b, 0);
最后一个参数是指示b
应如何处理对更改的模式。0
表示将值复制回arr
。如果您不想将数据复制回arr
,请JNI_ABORT
改用。
有关更多详细信息,请参见《JNI参考》。
actionscript-3 – 如何将bytearray转换为图像或图像到bytearray?
我有面板控件,并希望从webservice加载图像作为backgroundimage.所以我使用setstyle()但不接受该图像.所以如何将该图像添加到我的面板背景图像中.请在此处告诉我您的想法.
解决方法
yourImage.source = yourByteArray;
问候!
android – JNI:如何获得jbyteArray大小
我正在使用JNI中的字节数组.而且我无法获得jbyteArray的长度.我正在Windows 7中的eclipse中编写代码.
Java代码:
private native int Enroll( byte[] pSeed );
JNI代码:
在JNI中,我有一个结构,它有两个成员无符号长度和无符号字符数据[1]
typedef struct blobData_s { unsigned long length; unsigned char data[1]; } blobData_t;
现在我的JNI函数得到参数jbyteArray jpSeed我想得到jpSeed的长度并将其设置为struct的length成员.
JNIEXPORT jint JNICALL Java_com_Test_Enroll( jnienv* env,jobject thiz,jbyteArray jpSeed ){ blobData_t* bd = malloc( sizeof(blobData_t) ); bd->length = **Question 1** bd->data[1] = jbyteArray; }
问题1:如何在JNI中获得jpSeed的长度?
问题2:此代码是否正常bd.data [1] = jbyteArray; ?
解决方法
android – 如何将jbyteArray转换为Mat?
从ByteArrayOutpuStream.toByteArray()返回的byteArray原来是一个.bmp图像.这意味着byteArray也有imageHeader.
在Native端我有jbyteArray存储byteArray.
现在,如何将此jbyteArray转换为Mat进行进一步处理?
我想我必须先用cv :: imdecode(?,?,?)解码它?
谢谢
解决方法
请参阅以下链接.
https://github.com/ethanrublee/catkin-opencv/blob/master/samples/android/tutorial-3-native/jni/jni_part.cpp
android-opencv项目有这些样本.
arrays – Shell – 如何在Bash中将String转换为Byte数组
使用Bash / Shell,如何将随机字符串转换为字节数组?
我试过了:
echo "some string" | xxd -r -p
但它不起作用.
我基本上想要一个字节输出 – 例如)?è?GV?VY?戈?#G
$echo "testing some values"$'\157' | xxd 0000000: 7465 7374 696e 6720 736f 6d65 2076 616c testing some val 0000010: 7565 736f 0a ueso.
如果你只需要“普通”字符串:
$echo "testing some values"$'\157' | xxd -p 74657374696e6720736f6d652076616c7565736f0a
如果您需要“反转”十六进制字符串,您可以:
$echo "74657374696e6720736f6d652076616c7565736f0a" | xxd -r -p testing some valueso
如果你需要的是字符表示(不是十六进制),你可以这样做:
$echo "testing:"$'\001\011\n\bend test' | od -vAn -tcx1 t e s t i n g : 001 \t \n \b e n d 74 65 73 74 69 6e 67 3a 01 09 0a 08 65 6e 64 20 t e s t \n 74 65 73 74 0a
要么:
$echo "testing:"$'\001\011\n\bend test' | od -vAn -tax1 t e s t i n g : soh ht nl bs e n d sp 74 65 73 74 69 6e 67 3a 01 09 0a 08 65 6e 64 20 t e s t nl 74 65 73 74 0a
关于如何在jni中将jbyteArray转换为本地char *?和jbytearray 如何转unsignedchar的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于actionscript-3 – 如何将bytearray转换为图像或图像到bytearray?、android – JNI:如何获得jbyteArray大小、android – 如何将jbyteArray转换为Mat?、arrays – Shell – 如何在Bash中将String转换为Byte数组等相关知识的信息别忘了在本站进行查找喔。
本文标签: