Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0df2b375 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "BitmapFactory: Leave the P3 color space on wide gamut bitmaps"

parents f7d364d8 6c382572
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -455,10 +455,17 @@ static jobject doDecode(JNIEnv* env, SkStreamRewindable* stream, jobject padding
    const SkImageInfo decodeInfo = SkImageInfo::Make(size.width(), size.height(),
            decodeColorType, decodeAlphaType, codec->computeOutputColorSpace(decodeColorType));

    // When supported by the colorType, we will decode to sRGB (or linear sRGB).  However,
    // we only want to mark the bitmap as sRGB when linear blending is enabled.
    SkImageInfo bitmapInfo = decodeInfo.makeAlphaType(alphaType)
            .makeColorSpace(GraphicsJNI::colorSpaceForType(decodeColorType));
    SkImageInfo bitmapInfo = decodeInfo.makeAlphaType(alphaType);

    // For wide gamut images, we will leave the color space on the SkBitmap.  Otherwise,
    // use the default.
    sk_sp<SkColorSpace> srgb =
            SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma,
                                  SkColorSpace::kSRGB_Gamut,
                                  SkColorSpace::kNonLinearBlending_ColorSpaceFlag);
    if (decodeInfo.colorSpace() == srgb.get()) {
        bitmapInfo = bitmapInfo.makeColorSpace(GraphicsJNI::colorSpaceForType(decodeColorType));
    }

    if (decodeColorType == kGray_8_SkColorType) {
        // The legacy implementation of BitmapFactory used kAlpha8 for