|
|
|
@@ -186,17 +186,14 @@ void Mat::to_android_bitmap(JNIEnv* env, jobject bitmap, int type_from) const |
|
|
|
AndroidBitmap_getInfo(env, bitmap, &info); |
|
|
|
|
|
|
|
int type_to; |
|
|
|
int elempack; |
|
|
|
|
|
|
|
if (info.format == ANDROID_BITMAP_FORMAT_A_8) |
|
|
|
{ |
|
|
|
type_to = PIXEL_GRAY; |
|
|
|
elempack = 1; |
|
|
|
} |
|
|
|
else if (info.format == ANDROID_BITMAP_FORMAT_RGBA_8888) |
|
|
|
{ |
|
|
|
type_to = PIXEL_RGBA; |
|
|
|
elempack = 4; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
@@ -207,12 +204,12 @@ void Mat::to_android_bitmap(JNIEnv* env, jobject bitmap, int type_from) const |
|
|
|
// let PIXEL_XXX2RGBA become PIXEL_XXX |
|
|
|
type_from = (type_from & PIXEL_CONVERT_MASK) ? (type_from & PIXEL_FORMAT_MASK) : type_from; |
|
|
|
|
|
|
|
void* data; |
|
|
|
AndroidBitmap_lockPixels(env, bitmap, &data); |
|
|
|
void* _data; |
|
|
|
AndroidBitmap_lockPixels(env, bitmap, &_data); |
|
|
|
|
|
|
|
int type = type_from == type_to ? type_to : (type_from | (type_to << PIXEL_CONVERT_SHIFT)); |
|
|
|
|
|
|
|
to_pixels_resize((unsigned char*)data, type, info.width, info.height, info.stride); |
|
|
|
to_pixels_resize((unsigned char*)_data, type, info.width, info.height, info.stride); |
|
|
|
|
|
|
|
AndroidBitmap_unlockPixels(env, bitmap); |
|
|
|
} |
|
|
|
|