summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcore/jni/android/graphics/Bitmap.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index 18a1b43d3f5f..89c12f88594d 100755
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -265,6 +265,20 @@ void imageInfo(JNIEnv* env, jobject bitmap, AndroidBitmapInfo* info) {
info->format = ANDROID_BITMAP_FORMAT_NONE;
break;
}
+ switch (imageInfo.alphaType()) {
+ case kUnknown_SkAlphaType:
+ LOG_ALWAYS_FATAL("Bitmap has no alpha type");
+ break;
+ case kOpaque_SkAlphaType:
+ info->flags |= ANDROID_BITMAP_FLAGS_ALPHA_OPAQUE;
+ break;
+ case kPremul_SkAlphaType:
+ info->flags |= ANDROID_BITMAP_FLAGS_ALPHA_PREMUL;
+ break;
+ case kUnpremul_SkAlphaType:
+ info->flags |= ANDROID_BITMAP_FLAGS_ALPHA_UNPREMUL;
+ break;
+ }
}
void* lockPixels(JNIEnv* env, jobject bitmap) {