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

Commit fb9aa408 authored by Kevin Lubick's avatar Kevin Lubick
Browse files

Replace SkEncodeImage with direct calls to SkEncoders

SkImageEncoder is deprecated as of https://skia-review.googlesource.com/c/skia/+/668696

Change-Id: Ic004dd6fd67bb5c92dab8b2259a015ebe936fd87
parent 19932bce
Loading
Loading
Loading
Loading
+19 −12
Original line number Original line Diff line number Diff line
@@ -41,12 +41,13 @@
#include <SkHighContrastFilter.h>
#include <SkHighContrastFilter.h>
#include <SkImage.h>
#include <SkImage.h>
#include <SkImageAndroid.h>
#include <SkImageAndroid.h>
#include <SkImageEncoder.h>
#include <SkImagePriv.h>
#include <SkImagePriv.h>
#include <SkJpegGainmapEncoder.h>
#include <SkJpegGainmapEncoder.h>
#include <SkPixmap.h>
#include <SkPixmap.h>
#include <SkRect.h>
#include <SkRect.h>
#include <SkStream.h>
#include <SkStream.h>
#include <SkJpegEncoder.h>
#include <SkPngEncoder.h>
#include <SkWebpEncoder.h>
#include <SkWebpEncoder.h>


#include <limits>
#include <limits>
@@ -499,17 +500,25 @@ bool Bitmap::compress(const SkBitmap& bitmap, JavaCompressFormat format,
        return false;
        return false;
    }
    }


    SkEncodedImageFormat fm;
    switch (format) {
    switch (format) {
        case JavaCompressFormat::Jpeg:
        case JavaCompressFormat::Jpeg: {
            fm = SkEncodedImageFormat::kJPEG;
            SkJpegEncoder::Options options;
            break;
            options.fQuality = quality;
            return SkJpegEncoder::Encode(stream, bitmap.pixmap(), options);
        }
        case JavaCompressFormat::Png:
        case JavaCompressFormat::Png:
            fm = SkEncodedImageFormat::kPNG;
            return SkPngEncoder::Encode(stream, bitmap.pixmap(), {});
            break;
        case JavaCompressFormat::Webp: {
        case JavaCompressFormat::Webp:
            SkWebpEncoder::Options options;
            fm = SkEncodedImageFormat::kWEBP;
            if (quality >= 100) {
            break;
                options.fCompression = SkWebpEncoder::Compression::kLossless;
                options.fQuality = 75; // This is effort to compress
            } else {
                options.fCompression = SkWebpEncoder::Compression::kLossy;
                options.fQuality = quality;
            }
            return SkWebpEncoder::Encode(stream, bitmap.pixmap(), options);
        }
        case JavaCompressFormat::WebpLossy:
        case JavaCompressFormat::WebpLossy:
        case JavaCompressFormat::WebpLossless: {
        case JavaCompressFormat::WebpLossless: {
            SkWebpEncoder::Options options;
            SkWebpEncoder::Options options;
@@ -519,8 +528,6 @@ bool Bitmap::compress(const SkBitmap& bitmap, JavaCompressFormat format,
            return SkWebpEncoder::Encode(stream, bitmap.pixmap(), options);
            return SkWebpEncoder::Encode(stream, bitmap.pixmap(), options);
        }
        }
    }
    }

    return SkEncodeImage(stream, bitmap, fm, quality);
}
}


sp<uirenderer::Gainmap> Bitmap::gainmap() const {
sp<uirenderer::Gainmap> Bitmap::gainmap() const {