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 {