diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-10-02 13:48:27 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-10-02 13:48:27 +0200 |
commit | bdc2df1a04f65c35651ad962f12723e177f4bd2f (patch) | |
tree | 0a59d981895e4547e4e3f7bf9190a6eb3a7e71b5 /src | |
parent | ab1f3ee4c5fea333d5c0d3a6eb9eeda987763cc9 (diff) | |
parent | 3c68f26c052b06da9b43bb775cbe5a539fccb0c3 (diff) | |
download | qtimageformats-bdc2df1a04f65c35651ad962f12723e177f4bd2f.tar.gz |
Merge remote-tracking branch 'origin/5.5' into 5.6
Change-Id: Iab58d8196ae737c506125f37117c44e90dc1fb7a
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/imageformats/jp2/qjp2handler.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/imageformats/jp2/qjp2handler.cpp b/src/plugins/imageformats/jp2/qjp2handler.cpp index f69538c..f8f35b4 100644 --- a/src/plugins/imageformats/jp2/qjp2handler.cpp +++ b/src/plugins/imageformats/jp2/qjp2handler.cpp @@ -777,6 +777,9 @@ bool Jpeg2000JasperReader::write(const QImage &image, int quality) if (qtDepth == 32) { // RGB(A) jasper_image = newRGBAImage(qtWidth, qtHeight, qtImage.hasAlphaChannel()); + if (!jasper_image) + return false; + if (qtImage.hasAlphaChannel()) copyQtJasper(&Jpeg2000JasperReader::copyScanlineQtJasperRGBA); else @@ -785,6 +788,9 @@ bool Jpeg2000JasperReader::write(const QImage &image, int quality) // Color mapped grayscale if (qtImage.allGray()) { jasper_image = newGrayscaleImage(qtWidth, qtHeight, qtImage.hasAlphaChannel()); + if (!jasper_image) + return false; + if (qtImage.hasAlphaChannel()) copyQtJasper(&Jpeg2000JasperReader::copyScanlineQtJasperColormapGrayscaleA); else @@ -792,6 +798,9 @@ bool Jpeg2000JasperReader::write(const QImage &image, int quality) } else { // Color mapped color jasper_image = newRGBAImage(qtWidth, qtHeight, qtImage.hasAlphaChannel()); + if (!jasper_image) + return false; + if (qtImage.hasAlphaChannel()) copyQtJasper(&Jpeg2000JasperReader::copyScanlineQtJasperColormapRGBA); else @@ -1041,6 +1050,11 @@ jas_image_t* Jpeg2000JasperReader::newRGBAImage(const int width, jas_image_t *newImage = jas_image_create(jasNumComponents, params, JAS_CLRSPC_SRGB); + if (!newImage) { + delete[] params; + return 0; + } + jas_image_setcmpttype(newImage, 0, JAS_IMAGE_CT_RGB_R); jas_image_setcmpttype(newImage, 1, JAS_IMAGE_CT_RGB_G); jas_image_setcmpttype(newImage, 2, JAS_IMAGE_CT_RGB_B); @@ -1074,6 +1088,8 @@ jas_image_t *Jpeg2000JasperReader::newGrayscaleImage(const int width, jasNumComponents = alpha ? 2 : 1; jas_image_cmptparm_t param = createComponentMetadata(width, height); jas_image_t *newImage = jas_image_create(1, ¶m, JAS_CLRSPC_SGRAY); + if (!newImage) + return 0; jas_image_setcmpttype(newImage, 0, JAS_IMAGE_CT_GRAY_Y); |