12 #ifdef USE_IMAGEMAGICK
20 std::shared_ptr<Magick::Image>
24 if (!image || image->isNull())
28 const QRgb *tmpBits = (
const QRgb*)image->constBits();
31 auto magick_image = std::make_shared<Magick::Image>(
32 image->width(), image->height(),
33 "RGBA", Magick::CharPixel, tmpBits);
36 magick_image->backgroundColor(Magick::Color(
"none"));
37 magick_image->virtualPixelMethod(
38 Magick::TransparentVirtualPixelMethod);
45 std::shared_ptr<QImage>
52 const std::size_t size = image->columns() * image->rows() * BPP;
54 auto* qbuffer =
new unsigned char[size]();
56 MagickCore::ExceptionInfo exception;
58 MagickCore::ExportImagePixels(
59 image->constImage(), 0, 0,
60 image->columns(), image->rows(),
61 "RGBA", Magick::CharPixel,
64 auto qimage = std::make_shared<QImage>(
65 qbuffer, image->columns(), image->rows(),
66 image->columns() * BPP,
67 QImage::Format_RGBA8888_Premultiplied,
68 (QImageCleanupFunction) &openshot::cleanUpBuffer,
Header file for MagickUtilities (IM6/IM7 compatibility overlay)
#define MAGICK_IMAGE_ALPHA(im, a)
Header file for QtUtilities (compatibiity overlay)
std::shared_ptr< Magick::Image > QImage2Magick(std::shared_ptr< QImage >)
Convert QImage to Magick::Image.
std::shared_ptr< QImage > Magick2QImage(std::shared_ptr< Magick::Image >)
Convert Magick::Image to QImage.