diff options
author | Tomaž Vajngerl <quikee@gmail.com> | 2013-04-21 14:00:26 +0200 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2013-04-21 21:55:45 +0200 |
commit | 56b61a3a92e91d5814076ea66bd16fca98ecbd9b (patch) | |
tree | 8a07d949aa008d8cb60d049a97bfd274f488e958 | |
parent | b5a9cc71d246c26da8aca4203da84c10c104c222 (diff) |
Detect image rotation when inserting images and perform lossless rotation.
If Exif in an Jpeg image indicates that the image is rotated, ask
the user if rotate the image to standard orientation. If yes, perform
lossless rotation of the image.
Change-Id: I164da2b06b7fd114f4d2a5a352719c47497daeae
-rw-r--r-- | sw/source/ui/uiview/view2.cxx | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sw/source/ui/uiview/view2.cxx b/sw/source/ui/uiview/view2.cxx index dbc1dae10c0a..3cf7c4acb953 100644 --- a/sw/source/ui/uiview/view2.cxx +++ b/sw/source/ui/uiview/view2.cxx @@ -134,6 +134,9 @@ #include <docstat.hxx> #include <wordcountdialog.hxx> +#include <vcl/GraphicNativeTransform.hxx> +#include <vcl/GraphicNativeMetadata.hxx> + const char sStatusDelim[] = " : "; const char sStatusComma[] = " , ";//#outlinelevel, define a Variable for "," add by zhaojianwei @@ -216,6 +219,21 @@ int SwView::InsertGraphic( const String &rPath, const String &rFilter, if( GRFILTER_OK == nRes ) { + GraphicNativeMetadata aMetadata; + if (aMetadata.Read(aGrf)) + { + if (aMetadata.GetRotation() != 0) + { + OUString aMessage("This image is rotated. Would you like LibreOffice to rotate it into standard orientation?"); + QueryBox aQueryBox(GetWindow(), WB_YES_NO | WB_DEF_YES, aMessage); + if (aQueryBox.Execute() == RET_YES) + { + GraphicNativeTransform aTransform(aGrf); + aTransform.Rotate(aMetadata.GetRotation()); + } + } + } + SwFlyFrmAttrMgr aFrmMgr( sal_True, GetWrtShellPtr(), FRMMGR_TYPE_GRF ); SwWrtShell &rSh = GetWrtShell(); |