如何将图像从C ++传递到Java

时间:2019-10-01 07:21:00

标签: java c++ java-native-interface

我试图将图像(PNG文件仅存在于内存中,而不位于硬盘上)从旧的C++应用程序传递到我的Java 8应用程序中,但我没有找到解决方案。在我的Java应用中,我在C++ DLL中调用了本机函数。

  

在我的Java应用程序中,我想我应该写一些与   字节数组。

public static native Byte[] getByteArrayImage()

在C ++应用中,我编写了这段代码

JNIEXPORT jbyteArray JNICALL Java_it_getByteArrayImage(JNIEnv * env, jclass obj, jint imagekind)
{
  AFX_MANAGE_STATE(AfxGetStaticModuleState());
  unsigned long bufferSize;
  BYTE* buffer = PaintToBufferImage(imagekind, &bufferSize);
  jbyteArray jb= env->NewByteArray(bufferSize);
  env->SetByteArrayRegion(jb, 0, bufferSize, (jbyte *)buffer);
  return jb;
}

你能帮我吗?谢谢。

0 个答案:

没有答案