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

This commit is contained in:
TreeHugger Robot
2021-01-19 15:00:09 +00:00
committed by Android (Google) Code Review
4 changed files with 8 additions and 2 deletions

View File

@@ -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;

View File

@@ -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*);

View File

@@ -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());
}

View File

@@ -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;