728x90
반응형
이번 포스팅에서는 매개변수로 받은 jbyte형 변수를 C++의 vector<uchar> 자료형으로 변환하는 방법에 대해 설명하겠습니다! JNI 함수 쪽에서 아래와 같은 과정을 통해 변환해주면 됩니다.
void byte2char(
JNIEnv *env,
jclass obj,
jbyteArray tmp){
int tmp_len = env->GetArrayLength(tmp);
unsigned char* tmpBuffer = new unsigned char[tmp_len];
env->GetByteArrayRegion(tmp, 0, tmp_len, reinterpret_cast<jbyte*>(tmpBuffer));
vector<uchar> newtmp(*tmpBuffer, tmp_len);
}
1. 먼저, byte형 변수의 길이가 필요합니다. env->GetArrayLength() 를 통해 가져올 수 있습니다!
2. 1에서 가져온값 만큼의 길이를 갖는 unsigned char* 변수를 선언합니다.
3. env->GetByteArrayRegion()를 이용해 2에 선언된 변수에 세팅합니다.
4. vector<uchar> 자료형으로 만들어줍니다.
728x90
반응형
'Etc' 카테고리의 다른 글
safetensor 모델을 diffusers에서 사용 가능하게 변경하기 (0) | 2024.11.11 |
---|---|
[JNI] JNI 사용법 및 튜토리얼 (2) (0) | 2023.03.12 |
[JNI] JNI 사용법 및 튜토리얼 (1) (3) | 2023.03.11 |
[C++] 클래스 메모리 주소를 클래스로 변환하기 (0) | 2023.03.11 |