summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/image-resolution.cpp
diff options
context:
space:
mode:
authorsu_v <suv-sf@users.sourceforge.net>2013-05-16 16:00:19 +0000
committer~suv <suv-sf@users.sourceforge.net>2013-05-16 16:00:19 +0000
commit58f7c54bdd82261552c308b672e8d5f079bf5c6d (patch)
treec62c20759bfdea3c52cd2805289957731ab38305 /src/extension/internal/image-resolution.cpp
parentmerge from trunk (r12322) (diff)
parentWin32. More include fixes for glibmm 2.36 (file dialog). (diff)
downloadinkscape-58f7c54bdd82261552c308b672e8d5f079bf5c6d.tar.gz
inkscape-58f7c54bdd82261552c308b672e8d5f079bf5c6d.zip
merge from trunk (r12337)
(bzr r11668.1.70)
Diffstat (limited to 'src/extension/internal/image-resolution.cpp')
-rw-r--r--src/extension/internal/image-resolution.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/extension/internal/image-resolution.cpp b/src/extension/internal/image-resolution.cpp
index 51a3fe9c1..3c254a59c 100644
--- a/src/extension/internal/image-resolution.cpp
+++ b/src/extension/internal/image-resolution.cpp
@@ -21,6 +21,9 @@
#ifdef HAVE_JPEG
#define IR_TRY_JFIF 1
#endif
+#ifdef WITH_IMAGE_MAGICK
+#include <Magick++.h>
+#endif
namespace Inkscape {
namespace Extension {
@@ -39,6 +42,9 @@ ImageResolution::ImageResolution(char const *fn) {
if (!ok_) {
readexif(fn);
}
+ if (!ok_) {
+ readmagick(fn);
+ }
}
bool ImageResolution::ok() const {
@@ -328,6 +334,33 @@ void ImageResolution::readjfif(char const *) {
#endif
+#ifdef WITH_IMAGE_MAGICK
+void ImageResolution::readmagick(char const *fn) {
+ Magick::Image image;
+ try {
+ image.read(fn);
+ } catch (...) {}
+ Magick::Geometry geo = image.density();
+ std::string type = image.magick();
+
+ if (type == "PNG") { // PNG only supports pixelspercentimeter
+ x_ = (double)geo.width() * 2.54;
+ y_ = (double)geo.height() * 2.54;
+ } else {
+ x_ = (double)geo.width();
+ y_ = (double)geo.height();
+ }
+ ok_ = true;
+}
+
+#else
+
+// Dummy implementation
+void ImageResolution::readmagick(char const *) {
+}
+
+#endif /* WITH_IMAGE_MAGICK */
+
}
}
}