diff --git a/src/ImageReader.cpp b/src/ImageReader.cpp index 1c2276a0..89176b3d 100644 --- a/src/ImageReader.cpp +++ b/src/ImageReader.cpp @@ -88,6 +88,7 @@ tr1::shared_ptr ImageReader::GetFrame(int requested_frame) throw(ReaderCl // Add Image data to frame tr1::shared_ptr copy_image(new Magick::Image(*image.get())); + copy_image->modifyImage(); // actually copy the image data to this object image_frame->AddImage(copy_image); // return frame object diff --git a/src/Main.cpp b/src/Main.cpp index 3027f9c4..172c325a 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -31,21 +31,28 @@ int main() Timeline t(640, 360, Framerate(24,1), 44100, 2); // Add some clips - Clip c1(new FFmpegReader("/home/jonathan/Videos/sintel_trailer-720p.mp4")); + Clip c1(new FFmpegReader("/home/jonathan/Videos/sintel-1024-stereo.mp4")); Clip c2(new ImageReader("/home/jonathan/Desktop/logo1.png")); - //Clip c2(new ImageReader("/home/jonathan/Desktop/icon.png")); + Clip c3(new ImageReader("/home/jonathan/Desktop/icon.png")); //Clip c3(new FFmpegReader("/home/jonathan/Desktop/IncognitoCory_-_April_Song.mp3")); c1.Position(0.0); c1.gravity = GRAVITY_CENTER; - c1.scale = SCALE_CROP; + c1.scale = SCALE_FIT; c1.End(20); c2.Position(0.0); - c2.Layer(1); + c2.Layer(2); c2.gravity = GRAVITY_LEFT; c2.scale = SCALE_NONE; c2.End(20); + c3.Layer(1); + c3.End(20); + c3.location_x.AddPoint(1, 0); + c3.location_x.AddPoint(300, 1.0); + c3.gravity = GRAVITY_LEFT; + c3.scale = SCALE_NONE; + c2.rotation.AddPoint(1, 1); c2.rotation.AddPoint(300, 360); @@ -65,9 +72,9 @@ int main() //c1.alpha.AddPoint(30, 0); c2.alpha.AddPoint(1, 0); + c2.alpha.AddPoint(100, 1); + c2.alpha.AddPoint(200, 0); c2.alpha.AddPoint(300, 1); - //c2.alpha.AddPoint(100, 0, LINEAR); - //c2.alpha.AddPoint(150, 1); c2.location_x.AddPoint(1, 0); c2.location_x.AddPoint(300, 1.0); @@ -125,7 +132,7 @@ int main() // Add clips t.AddClip(&c1); t.AddClip(&c2); - //t.AddClip(&c3); + t.AddClip(&c3); // Create a writer diff --git a/src/Timeline.cpp b/src/Timeline.cpp index 1e34347d..d333b9b4 100644 --- a/src/Timeline.cpp +++ b/src/Timeline.cpp @@ -65,10 +65,8 @@ void Timeline::add_layer(tr1::shared_ptr new_frame, Clip* source_clip, in /* ALPHA & OPACITY */ if (source_clip->alpha.GetValue(clip_frame_number) != 0) { - // Calculate & set opacity of new image - int new_opacity = 65535.0f * source_clip->alpha.GetValue(clip_frame_number); - if (new_opacity < 0) new_opacity = 0; // completely invisible - //source_image->opacity(new_opacity); + float alpha = 1.0 - source_clip->alpha.GetValue(clip_frame_number); + source_image->quantumOperator(Magick::OpacityChannel, Magick::MultiplyEvaluateOperator, alpha); } /* RESIZE SOURCE IMAGE - based on scale type */ @@ -253,7 +251,7 @@ tr1::shared_ptr Timeline::GetFrame(int requested_frame) throw(ReaderClose // Loop through all requested frames for (int frame_number = requested_frame; frame_number < requested_frame + minimum_frames; frame_number++) { - #pragma xxx omp task firstprivate(frame_number) + #pragma omp task firstprivate(frame_number) { // Create blank frame (which will become the requested frame) tr1::shared_ptr new_frame(tr1::shared_ptr(new Frame(frame_number, width, height, "#000000", GetSamplesPerFrame(frame_number), channels)));