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

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

Merge "Fix scaling + cropping in ImageDecoder"

parents 790ac66e 6e07e163
Loading
Loading
Loading
Loading
+6 −5
Original line number Original line Diff line number Diff line
@@ -374,16 +374,17 @@ static jobject ImageDecoder_nDecodeBitmap(JNIEnv* env, jobject /*clazz*/, jlong
    if (scale || jsubset) {
    if (scale || jsubset) {
        int translateX = 0;
        int translateX = 0;
        int translateY = 0;
        int translateY = 0;
        SkImageInfo scaledInfo;
        if (jsubset) {
        if (jsubset) {
            SkIRect subset;
            SkIRect subset;
            GraphicsJNI::jrect_to_irect(env, jsubset, &subset);
            GraphicsJNI::jrect_to_irect(env, jsubset, &subset);


            translateX = -subset.fLeft;
            translateX = -subset.fLeft;
            translateY = -subset.fTop;
            translateY = -subset.fTop;
            desiredWidth  =  subset.width();
            scaledInfo = bitmapInfo.makeWH(subset.width(), subset.height());
            desiredHeight =  subset.height();
        } else {
            scaledInfo = bitmapInfo.makeWH(desiredWidth, desiredHeight);
        }
        }
        SkImageInfo scaledInfo = bitmapInfo.makeWH(desiredWidth, desiredHeight);
        SkBitmap scaledBm;
        SkBitmap scaledBm;
        if (!scaledBm.setInfo(scaledInfo)) {
        if (!scaledBm.setInfo(scaledInfo)) {
            doThrowIOE(env, "Failed scaled setInfo");
            doThrowIOE(env, "Failed scaled setInfo");