summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorTomaž Vajngerl <quikee@gmail.com>2013-06-03 23:39:30 +0200
committerTomaž Vajngerl <quikee@gmail.com>2013-06-03 23:45:00 +0200
commit4d2a7692ef7d5cf733cb818b67be300968aa5689 (patch)
treeb89d2d7dffbdcf5088f9c052382d0ebc5f27999a /vcl
parent870dd818999ac62c6722c208527d5fbf28c5daee (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.cxx21
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