summaryrefslogtreecommitdiff
blob: fe53efba3027a083e5060ecd704b758ac92d71ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
From 295773f44bfda1227d85edf065a8de14dc889159 Mon Sep 17 00:00:00 2001
From: Steve Allewell <steve.allewell@gmail.com>
Date: Wed, 25 Oct 2017 20:57:22 +0100
Subject: Fix for changes to ImageMagick API for importing images

---
 src/FlossScheme.cpp    |  4 ++--
 src/ImportImageDlg.cpp |  9 ++++++---
 src/MainWindow.cpp     | 10 ++++++----
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/FlossScheme.cpp b/src/FlossScheme.cpp
index 4c59973..e4cd117 100644
--- a/src/FlossScheme.cpp
+++ b/src/FlossScheme.cpp
@@ -38,8 +38,8 @@ Floss *FlossScheme::convert(const QColor &color)
     Magick::Image image = Magick::Image(1, 1, "RGB", MagickLib::CharPixel, c);
 #endif
     image.map(*m_map);
-    const Magick::PixelPacket *pixels = image.getConstPixels(0, 0, 1, 1);
-    const Magick::ColorRGB rgb = Magick::Color(*pixels);
+
+    const Magick::ColorRGB rgb = image.pixelColor(0,0);
 
     return find(QColor((int)(255*rgb.red()), (int)(255*rgb.green()), (int)(255*rgb.blue())));
 }
diff --git a/src/ImportImageDlg.cpp b/src/ImportImageDlg.cpp
index d12ca34..79e8c38 100644
--- a/src/ImportImageDlg.cpp
+++ b/src/ImportImageDlg.cpp
@@ -305,9 +305,12 @@ void ImportImageDlg::renderPixmap()
     QProgressDialog progress(i18n("Rendering preview"), i18n("Cancel"), 0, pixelCount, this);
     progress.setWindowModality(Qt::WindowModal);
 
+#if MagickLibVersion < 0x700
     bool hasTransparency = m_convertedImage.matte();
-    const Magick::PixelPacket *pixels = m_convertedImage.getConstPixels(0, 0, width, height);
-
+#else
+    bool hasTransparency = m_convertedImage.alpha();
+#endif
+    
     for (int dy = 0 ; dy < height ; dy++) {
         QApplication::processEvents();
         progress.setValue(dy * width);
@@ -317,7 +320,7 @@ void ImportImageDlg::renderPixmap()
         }
 
         for (int dx = 0 ; dx < width ; dx++) {
-            Magick::ColorRGB rgb = Magick::Color(*pixels++);
+            Magick::ColorRGB rgb = m_convertedImage.pixelColor(dx, dy);
 
             if (hasTransparency && (rgb.alpha() == 1)) {
                 //ignore this pixel as it is transparent
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index 9713293..1d22e63 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -543,7 +543,11 @@ void MainWindow::convertImage(const QString &source)
 
         bool useFractionals = importImageDlg->useFractionals();
 
+#if MagickLibVersion < 0x700
         bool hasTransparency = convertedImage.matte();
+#else
+        bool hasTransparency = convertedImage.alpha();
+#endif
         bool ignoreColor = importImageDlg->ignoreColor();
         Magick::Color ignoreColorValue = importImageDlg->ignoreColorValue();
 
@@ -564,8 +568,6 @@ void MainWindow::convertImage(const QString &source)
         QProgressDialog progress(i18n("Converting to stitches"), i18n("Cancel"), 0, pixelCount, this);
         progress.setWindowModality(Qt::WindowModal);
 
-        const Magick::PixelPacket *pixels = convertedImage.getConstPixels(0, 0, imageWidth, imageHeight);
-
         for (int dy = 0 ; dy < imageHeight ; dy++) {
             progress.setValue(dy * imageWidth);
             QApplication::processEvents();
@@ -577,8 +579,8 @@ void MainWindow::convertImage(const QString &source)
             }
 
             for (int dx = 0 ; dx < imageWidth ; dx++) {
-                Magick::ColorRGB rgb = Magick::Color(*pixels++);
-
+                Magick::ColorRGB rgb = convertedImage.pixelColor(dx, dy);
+                
                 if (hasTransparency && (rgb.alpha() == 1)) {
                     // ignore this pixel as it is transparent
                 } else {
-- 
cgit v0.11.2