GVKun编程网logo

如何在jni中将jbyteArray转换为本地char *?(jbytearray 如何转unsignedchar)

6

如果您对如何在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)

如何在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

小编典典

相信您会使用GetByteArrayElementsReleaseByteArrayElements。就像是:

boolean isCopy;jbyte* b = GetByteArrayElements(env, arr, &isCopy);

你应该能够投bchar*在这一点上,以访问数组中的数据。请注意,这可能会创建数据的副本,因此您需要确保使用释放内存ReleaseByteArrayElements

ReleaseByteArrayElements(env, arr, b, 0);

最后一个参数是指示b应如何处理对更改的模式。0表示将值复制回arr。如果您不想将数据复制回arr,请JNI_ABORT改用。

有关更多详细信息,请参见《JNI参考》。

actionscript-3 – 如何将bytearray转换为图像或图像到bytearray?

actionscript-3 – 如何将bytearray转换为图像或图像到bytearray?

如何将bytearray值分配给面板背景图像.如果有人有想法或经验,请帮助我克服这个问题.简要说明:

我有面板控件,并希望从webservice加载图像作为backgroundimage.所以我使用setstyle()但不接受该图像.所以如何将该图像添加到我的面板背景图像中.请在此处告诉我您的想法.

解决方法

在Flex 3或更高版本中,您只需要:
yourImage.source = yourByteArray;

问候!

android – JNI:如何获得jbyteArray大小

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; ?

解决方法

>您可以使用GetArrayLength(jnienv * env,jbyteArray数组)阅读 here. >不确定你想做什么,我假设你想要bd.data [1]中jpSeed的内容. 无论如何,访问字节数组的内容应该使用GetByteArrayElements(…)来完成.

android – 如何将jbyteArray转换为Mat?

android – 如何将jbyteArray转换为Mat?

我想在本机代码中将byteArray转换为Mat.
从ByteArrayOutpuStream.toByteArray()返回的byteArray原来是一个.bmp图像.这意味着byteArray也有imageHeader.

在Native端我有jbyteArray存储byteArray.
现在,如何将此jbyteArray转换为Mat进行进一步处理?

我想我必须先用cv :: imdecode(?,?,?)解码它?

谢谢

解决方法

您可以将jbyteArray转换为Mat.

请参阅以下链接.

https://github.com/ethanrublee/catkin-opencv/blob/master/samples/android/tutorial-3-native/jni/jni_part.cpp

android-opencv项目有这些样本.

arrays – Shell – 如何在Bash中将String转换为Byte数组

arrays – Shell – 如何在Bash中将String转换为Byte数组

我在StackOverflow上发现了许多帖子,这些帖子用C,C#和其他语言覆盖了这个问题,但是没有用 Shell.

使用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数组等相关知识的信息别忘了在本站进行查找喔。

本文标签: