diff options
author | Tomaž Vajngerl <quikee@gmail.com> | 2013-06-03 23:39:30 +0200 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2013-06-04 00:18:04 +0200 |
commit | 01c5c1de3acc9039fabef1fa03d171fa1a75a702 (patch) | |
tree | fa57360a77a2f60b2aa073ee92ed77d4c598e7a7 /vcl | |
parent | eddf277c992b80282e0b49325b3138de5a3a2509 (diff) |
fdo#34423 Allow to rotate raw uncompressed bitmaps.
When using a graphic filter like blur or sharpen, a raw uncompressed
bitmap is created. Until now it was not possible to rotate such bitmap
but now this is allowed.
Change-Id: I716fa46e37680b1111131586fad20da28391de14
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/filter/GraphicNativeTransform.cxx | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/vcl/source/filter/GraphicNativeTransform.cxx b/vcl/source/filter/GraphicNativeTransform.cxx index 7b3f64072afa..261ad90c3ce5 100644 --- a/vcl/source/filter/GraphicNativeTransform.cxx +++ b/vcl/source/filter/GraphicNativeTransform.cxx @@ -47,7 +47,8 @@ bool GraphicNativeTransform::canBeRotated() if ( aLink.GetType() == GFX_LINK_TYPE_NATIVE_JPG || aLink.GetType() == GFX_LINK_TYPE_NATIVE_PNG - || aLink.GetType() == GFX_LINK_TYPE_NATIVE_GIF) + || aLink.GetType() == GFX_LINK_TYPE_NATIVE_GIF + || aLink.GetType() == GFX_LINK_TYPE_NONE) { return true; } @@ -82,9 +83,27 @@ bool GraphicNativeTransform::rotate(sal_uInt16 aInputRotation) { return rotateGeneric(aRotation, OUString("gif")); } + else if ( aLink.GetType() == GFX_LINK_TYPE_NONE ) + { + return rotateBitmapOnly(aRotation); + } return false; } +bool GraphicNativeTransform::rotateBitmapOnly(sal_uInt16 aRotation) +{ + if (mrGraphic.IsAnimated()) + { + return false; + } + + BitmapEx aBitmap = mrGraphic.GetBitmapEx(); + aBitmap.Rotate(aRotation, COL_BLACK); + mrGraphic = aBitmap; + + return true; +} + bool GraphicNativeTransform::rotateGeneric(sal_uInt16 aRotation, OUString aType) { // Can't rotate animations yet |