c中opengl截图,java中解析为空,求解答
阿提饭 2012-10-16 05:25:37
opengl截图代码:
char* data = new char[target->GetWidth()*target->GetHeight()*3];
glReadPixels( 0, 0, target->GetWidth(), target->GetHeight(), GL_RGB, GL_BYTE, data );
ShoppingHelper::GetInstance()->Share(data,target->GetWidth()*target->GetHeight()*3);
jni数据传输:
SkyNet_Share( const char *data, int count){
JNIEnv* env;
g_JVM->AttachCurrentThread ( &env, NULL );
jclass cls = env->FindClass ( "com/ck/Game" );
CLAW_ASSERT ( cls != NULL );
jmethodID mid = env->GetStaticMethodID ( cls, "share", "([B)V" );
CLAW_ASSERT ( mid != NULL );
jbyteArray jarray = env->NewByteArray(count);
env->SetByteArrayRegion(jarray, 0, count, (jbyte *)data);
env->CallStaticVoidMethod ( cls, mid,jarray);
java通过byte[]获取图片:
public static void share(byte[] data) {
logout("++++++++++java share " + data.length);
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
if ( null == bitmap){
Log.i("log", "bitmap is nullllllllllll+++++++++++");
return;
}
getGameInstance().savePic(bitmap);
}