diff options
| -rwxr-xr-x | core/jni/android/graphics/Bitmap.cpp | 14 |
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) { |