diff options
author | Leon Scroggins <scroggo@google.com> | 2020-01-22 19:33:01 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-01-22 19:33:01 +0000 |
commit | d50c7697a62c242b3bdde655e9d25d2dd000aa08 (patch) | |
tree | 375d4bbf5cfa88fb10b75201c76d2a858a1dade1 /native | |
parent | 8697e36b55749ee910841384524826c800e69e26 (diff) | |
parent | f89de633049792b172d5a5653907ddb568b42ac2 (diff) |
Merge "Implement AImageDecoder_computeSampledSize"
Diffstat (limited to 'native')
-rw-r--r-- | native/graphics/jni/imagedecoder.cpp | 16 | ||||
-rw-r--r-- | native/graphics/jni/libjnigraphics.map.txt | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/native/graphics/jni/imagedecoder.cpp b/native/graphics/jni/imagedecoder.cpp index 51439672d404..bd5914a55042 100644 --- a/native/graphics/jni/imagedecoder.cpp +++ b/native/graphics/jni/imagedecoder.cpp @@ -131,6 +131,10 @@ static ImageDecoder* toDecoder(AImageDecoder* d) { return reinterpret_cast<ImageDecoder*>(d); } +static const ImageDecoder* toDecoder(const AImageDecoder* d) { + return reinterpret_cast<const ImageDecoder*>(d); +} + // Note: This differs from the version in android_bitmap.cpp in that this // version returns kGray_8_SkColorType for ANDROID_BITMAP_FORMAT_A_8. SkCodec // allows decoding single channel images to gray, which Android then treats @@ -258,6 +262,18 @@ int AImageDecoder_setTargetSize(AImageDecoder* decoder, int width, int height) { ? ANDROID_IMAGE_DECODER_SUCCESS : ANDROID_IMAGE_DECODER_INVALID_SCALE; } +int AImageDecoder_computeSampledSize(const AImageDecoder* decoder, int sampleSize, + int* width, int* height) { + if (!decoder || !width || !height || sampleSize < 1) { + return ANDROID_IMAGE_DECODER_BAD_PARAMETER; + } + + SkISize size = toDecoder(decoder)->mCodec->getSampledDimensions(sampleSize); + *width = size.width(); + *height = size.height(); + return ANDROID_IMAGE_DECODER_SUCCESS; +} + int AImageDecoder_setCrop(AImageDecoder* decoder, ARect crop) { if (!decoder) { return ANDROID_IMAGE_DECODER_BAD_PARAMETER; diff --git a/native/graphics/jni/libjnigraphics.map.txt b/native/graphics/jni/libjnigraphics.map.txt index 6843e7a8552f..d9e7828d852a 100644 --- a/native/graphics/jni/libjnigraphics.map.txt +++ b/native/graphics/jni/libjnigraphics.map.txt @@ -10,6 +10,7 @@ LIBJNIGRAPHICS { AImageDecoder_getMinimumStride; # introduced=30 AImageDecoder_decodeImage; # introduced=30 AImageDecoder_setTargetSize; # introduced=30 + AImageDecoder_computeSampledSize; # introduced=30 AImageDecoder_setCrop; # introduced=30 AImageDecoderHeaderInfo_getWidth; # introduced=30 AImageDecoderHeaderInfo_getHeight; # introduced=30 |