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 /sw | |
parent | Exif reading/writing and Jpeg lossless transformations support. (diff) | |
download | core-56b61a3a92e91d5814076ea66bd16fca98ecbd9b.tar.gz core-56b61a3a92e91d5814076ea66bd16fca98ecbd9b.zip |
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
Diffstat (limited to 'sw')
-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(); |