Hi all I need to pass my bitmap image to JNI for some image manipulation.
For that first I convert bitmap to byte array then passed to JNI and then
converted to Mat, but i am getting distorted image at the JNI side. My code
look like below.
//Java part
Bitmap mBitmap = Bitmap.createBitmap(previewWidtd, previewHeight,
Bitmap.Config.ARGB_8888);
//
ByteArrayOutputStream src_stream = new ByteArrayOutputStream();
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, src_stream);
byte[] src_array = src_stream.toByteArray();
int[] src_mRGBA=new int[240*320];
WatershedSegmentation(240,320,src_array,,src_mRGBA); // JNI call
//JNI part
JNIEXPORT jintArray JNICALL
Java_com_measure_sizemesurment2_MyView_WatershedSegmentation(
JNIEnv* env, jobject thiz, jint width, jint height,
jbyteArray s_yuv,jintArray s_bgra) {
jbyte* _s_yuv = env->GetByteArrayElements(s_yuv, 0);
jint* _s_bgra = env->GetIntArrayElements(s_bgra, 0);
Mat sorcemyuv(height + height / 2, width, CV_8UC1, (unsigned char
*) _s_yuv);
Mat source(height, width, CV_8UC4, (unsigned char *) _s_bgra);
cvtColor(sorcemyuv, source, CV_YUV420sp2BGR, 4);
imwrite( "/sdcard/sorce.jpg", source );
env->ReleaseIntArrayElements(s_bgra, _s_bgra, 0);
env->ReleaseByteArrayElements(s_yuv, _s_yuv, 0);
}
Thanks in advance...
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en