2 #include <Magick++/Image.h>
3 #include "imagemagick_decoder.h"
4 #include "film_state.h"
9 ImageMagickDecoder::ImageMagickDecoder (
10 boost::shared_ptr<const FilmState> s, boost::shared_ptr<const Options> o, Job* j, Log* l, bool minimal, bool ignore_length)
11 : Decoder (s, o, j, l, minimal, ignore_length)
14 _magick_image = new Magick::Image (_fs->content_path ());
18 ImageMagickDecoder::native_size () const
20 return Size (_magick_image->columns(), _magick_image->rows());
24 ImageMagickDecoder::do_pass ()
30 Size size = native_size ();
31 RGBFrameImage image (size);
33 uint8_t* p = image.data()[0];
34 for (int y = 0; y < size.height; ++y) {
35 for (int x = 0; x < size.width; ++x) {
36 Magick::Color c = _magick_image->pixelColor (x, y);
37 *p++ = c.redQuantum() * 255 / MaxRGB;
38 *p++ = c.greenQuantum() * 255 / MaxRGB;
39 *p++ = c.blueQuantum() * 255 / MaxRGB;
44 process_video (image.frame ());
51 ImageMagickDecoder::pixel_format () const