diff options
author | Haoyu Qiu <timothyqiu32@gmail.com> | 2023-11-12 00:04:16 +0800 |
---|---|---|
committer | Haoyu Qiu <timothyqiu32@gmail.com> | 2023-11-12 00:15:49 +0800 |
commit | c07cd406cbe3a80869c657b1b0ce22088954cccb (patch) | |
tree | ed29f7e0795a72de8b75b68496cc7964f087f0c6 /modules/webp/webp_common.cpp | |
parent | e38686f85b768a451dc06324fe2471adc8665448 (diff) | |
download | redot-engine-c07cd406cbe3a80869c657b1b0ce22088954cccb.tar.gz |
Fix crash when saving compressed image as JPG & WebP
Diffstat (limited to 'modules/webp/webp_common.cpp')
-rw-r--r-- | modules/webp/webp_common.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/modules/webp/webp_common.cpp b/modules/webp/webp_common.cpp index bc34a25733..3a2ac5a90e 100644 --- a/modules/webp/webp_common.cpp +++ b/modules/webp/webp_common.cpp @@ -59,6 +59,10 @@ Vector<uint8_t> _webp_packer(const Ref<Image> &p_image, float p_quality, bool p_ compression_method = CLAMP(compression_method, 0, 6); Ref<Image> img = p_image->duplicate(); + if (img->is_compressed()) { + Error error = img->decompress(); + ERR_FAIL_COND_V_MSG(error != OK, Vector<uint8_t>(), "Couldn't decompress image."); + } if (img->detect_alpha()) { img->convert(Image::FORMAT_RGBA8); } else { |