You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
3.5 KiB

diff -Nru a/include/TextReader.h b/include/TextReader.h
--- a/include/TextReader.h 2018-09-22 21:47:46.000000000 +0200
+++ b/include/TextReader.h 2018-09-23 16:17:21.212888285 +0200
@@ -91,7 +91,7 @@
string text_color;
string background_color;
std::shared_ptr<Magick::Image> image;
- list<Magick::Drawable> lines;
+ vector<Magick::Drawable> lines;
bool is_open;
GravityType gravity;
diff -Nru a/src/Frame.cpp b/src/Frame.cpp
--- a/src/Frame.cpp 2018-09-22 21:47:46.000000000 +0200
+++ b/src/Frame.cpp 2018-09-23 16:21:44.921563711 +0200
@@ -29,6 +29,9 @@
using namespace std;
using namespace openshot;
+#ifdef USE_IMAGEMAGICK
+using namespace Magick;
+#endif
// Constructor - blank frame (300x200 blank image, 48kHz audio silence)
Frame::Frame() : number(1), pixel_ratio(1,1), channels(2), width(1), height(1), color("#000000"),
@@ -904,7 +907,7 @@
// Give image a transparent background color
magick_image->backgroundColor(Magick::Color("none"));
magick_image->virtualPixelMethod(Magick::TransparentVirtualPixelMethod);
- magick_image->matte(true);
+ magick_image->alpha(true);
return magick_image;
}
@@ -926,13 +929,14 @@
// Iterate through the pixel packets, and load our own buffer
// Each color needs to be scaled to 8 bit (using the ImageMagick built-in ScaleQuantumToChar function)
int numcopied = 0;
- Magick::PixelPacket *pixels = new_image->getPixels(0,0, new_image->columns(), new_image->rows());
+ const Quantum *pixels = new_image->getConstPixels(0,0, new_image->columns(), new_image->rows());
for (int n = 0, i = 0; n < new_image->columns() * new_image->rows(); n += 1, i += 4) {
- buffer[i+0] = MagickCore::ScaleQuantumToChar((Magick::Quantum) pixels[n].red);
- buffer[i+1] = MagickCore::ScaleQuantumToChar((Magick::Quantum) pixels[n].green);
- buffer[i+2] = MagickCore::ScaleQuantumToChar((Magick::Quantum) pixels[n].blue);
- buffer[i+3] = 255 - MagickCore::ScaleQuantumToChar((Magick::Quantum) pixels[n].opacity);
+ buffer[i+0] = MagickCore::ScaleQuantumToChar(MagickCore::GetPixelRed(new_image->image(), pixels));
+ buffer[i+1] = MagickCore::ScaleQuantumToChar(MagickCore::GetPixelGreen(new_image->image(), pixels));
+ buffer[i+2] = MagickCore::ScaleQuantumToChar(MagickCore::GetPixelBlue(new_image->image(), pixels));
+ buffer[i+3] = MagickCore::ScaleQuantumToChar(MagickCore::GetPixelAlpha(new_image->image(), pixels));
numcopied+=4;
+ pixels += MagickCore::GetPixelChannels(new_image->image());
}
// Create QImage of frame data
diff -Nru a/src/ImageReader.cpp b/src/ImageReader.cpp
--- a/src/ImageReader.cpp 2018-09-22 21:47:46.000000000 +0200
+++ b/src/ImageReader.cpp 2018-09-23 16:22:32.330865516 +0200
@@ -59,7 +59,7 @@
// Give image a transparent background color
image->backgroundColor(Magick::Color("none"));
- image->matte(true);
+ image->alpha(true);
}
catch (Magick::Exception e) {
// raise exception
diff -Nru a/src/ImageWriter.cpp b/src/ImageWriter.cpp
--- a/src/ImageWriter.cpp 2018-09-22 21:47:46.000000000 +0200
+++ b/src/ImageWriter.cpp 2018-09-23 16:22:58.380031419 +0200
@@ -97,7 +97,7 @@
std::shared_ptr<Magick::Image> frame_image = frame->GetMagickImage();
frame_image->magick( info.vcodec );
frame_image->backgroundColor(Magick::Color("none"));
- frame_image->matte(true);
+ frame_image->alpha(true);
frame_image->quality(image_quality);
frame_image->animationDelay(info.video_timebase.ToFloat() * 100);
frame_image->animationIterations(number_of_loops);