JNIEXPORT jbyteArray JNICALL Java_com_example_ndkimage_Dib_gray(JNIEnv *env,
jobject obj,
jbyteArray buf_src,
jint cx,
jint cy)
{
jsize n = env->GetArrayLength(buf_src); /
///////////////////////////////////////
double R = 0.299;
double G = 0.587;
double B = 0.114;
int nTmp = 0;
int nCnt = 0;
// Image Processing
for (i=0; i<cy; i++) {
for (j=0; j<cx; j++) {
nTmp = (int) (pbyte[nCnt] * R // R
+ pbyte[nCnt + 1] * G // G
+ pbyte[nCnt + 2] * B); // B
pbyte[nCnt] = pbyte[nCnt + 1] = pbyte[nCnt + 2] = nTmp;
nCnt += 3;
}
}
jbyteArray result; // output할 배열
result = env>NewByteArray( n); // 사이즈만큼 새로운 배열 생성
/*혹은 다음과 같이 한꺼번에 배열원소를 초기화할 수 있다 */
env->SetByteArrayRegion(result, 0, n, pbyte); // 입력받은 값을 사이즈만큼 result에 입력
env->ReleaseByteArrayElements( buf_src, pbyte, 0); // buf_src 포인터 free
return result;
}
제가 만든 소스코드인데, 버퍼가 들어와서 버퍼가 나가는 것까지는 괜찮은데, 문제는 C에 있는파일은 C++ 로 수정하면 에러가 납니다. C는 문제가 없는데 unsigned char 를 jbyte 로바꿀수없다는 말만 들립니다. 이것 어떻게 해결해야할까요?