diff options
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/graphicfilter/icgm/bitmap.cxx | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/filter/source/graphicfilter/icgm/bitmap.cxx b/filter/source/graphicfilter/icgm/bitmap.cxx index 3075cf733e48..26b837f3be04 100644 --- a/filter/source/graphicfilter/icgm/bitmap.cxx +++ b/filter/source/graphicfilter/icgm/bitmap.cxx @@ -81,6 +81,8 @@ void CGMBitmap::ImplGetBitmap( CGMBitmapDescriptor& rDesc ) try { + if (rDesc.mnScanSize) { + vcl::bitmap::RawBitmap aBitmap( Size( rDesc.mnX, rDesc.mnY ), 24 ); // the picture may either be read from left to right or right to left, from top to bottom ... @@ -212,6 +214,12 @@ void CGMBitmap::ImplGetBitmap( CGMBitmapDescriptor& rDesc ) } break; } + + if ( rDesc.mbStatus ) + rDesc.mxBitmap = vcl::bitmap::CreateFromData(std::move(aBitmap)); + + } + double nX = rDesc.mnR.X - rDesc.mnQ.X; double nY = rDesc.mnR.Y - rDesc.mnQ.Y; @@ -253,9 +261,6 @@ void CGMBitmap::ImplGetBitmap( CGMBitmapDescriptor& rDesc ) rDesc.mnOrigin.Y += rDesc.mnQ.Y - rDesc.mnR.Y; } - if ( rDesc.mbStatus ) - rDesc.mxBitmap = vcl::bitmap::CreateFromData(std::move(aBitmap)); - } catch (const std::bad_alloc&) { rDesc.mbStatus = false; } |