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

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

Merge "(A)ImageDecoder: fix sampled dimensions with exif"

parents 55a687ce 5a5c2ce5
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -76,6 +76,11 @@ static bool requires_matrix_scaling(bool swapWidthHeight, const SkISize& decodeS
          || (!swapWidthHeight && decodeSize != targetSize);
}

SkISize ImageDecoder::getSampledDimensions(int sampleSize) const {
    auto size = mCodec->getSampledDimensions(sampleSize);
    return swapWidthHeight() ? swapped(size) : size;
}

bool ImageDecoder::setTargetSize(int width, int height) {
    if (width <= 0 || height <= 0) {
        return false;
+1 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ public:
                 sk_sp<SkPngChunkReader> peeker = nullptr);
    ~ImageDecoder();

    SkISize getSampledDimensions(int sampleSize) const;
    bool setTargetSize(int width, int height);
    bool setCropRect(const SkIRect*);

+1 −1
Original line number Diff line number Diff line
@@ -465,7 +465,7 @@ static jobject ImageDecoder_nDecodeBitmap(JNIEnv* env, jobject /*clazz*/, jlong
static jobject ImageDecoder_nGetSampledSize(JNIEnv* env, jobject /*clazz*/, jlong nativePtr,
                                            jint sampleSize) {
    auto* decoder = reinterpret_cast<ImageDecoder*>(nativePtr);
    SkISize size = decoder->mCodec->getSampledDimensions(sampleSize);
    SkISize size = decoder->getSampledDimensions(sampleSize);
    return env->NewObject(gSize_class, gSize_constructorMethodID, size.width(), size.height());
}

+1 −1
Original line number Diff line number Diff line
@@ -353,7 +353,7 @@ int AImageDecoder_computeSampledSize(const AImageDecoder* decoder, int sampleSiz
        return ANDROID_IMAGE_DECODER_BAD_PARAMETER;
    }

    SkISize size = toDecoder(decoder)->mCodec->getSampledDimensions(sampleSize);
    SkISize size = toDecoder(decoder)->getSampledDimensions(sampleSize);
    *width = size.width();
    *height = size.height();
    return ANDROID_IMAGE_DECODER_SUCCESS;