summaryrefslogtreecommitdiff
path: root/src/lib/still_image_decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-08-25 17:21:12 +0100
committerCarl Hetherington <cth@carlh.net>2013-08-25 17:21:12 +0100
commitbd47b3ee1c76d439fecddcb913270a193f6eab5b (patch)
tree3d3ef7e6c15408311cd4f41035f376c6b2f5faa4 /src/lib/still_image_decoder.cc
parent1284dd144452ec7fd2e7dca9d5f8f8a77bbff1ac (diff)
Interop support.
Diffstat (limited to 'src/lib/still_image_decoder.cc')
-rw-r--r--src/lib/still_image_decoder.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/still_image_decoder.cc b/src/lib/still_image_decoder.cc
index 1dd684639..6e82f9a55 100644
--- a/src/lib/still_image_decoder.cc
+++ b/src/lib/still_image_decoder.cc
@@ -55,18 +55,20 @@ StillImageDecoder::pass ()
Magick::Image* magick_image = new Magick::Image (_still_image_content->path().string ());
_video_size = libdcp::Size (magick_image->columns(), magick_image->rows());
- _image.reset (new Image (PIX_FMT_RGB24, _video_size.get(), false));
+ _image.reset (new Image (PIX_FMT_RGB24, _video_size.get(), true));
using namespace MagickCore;
uint8_t* p = _image->data()[0];
for (int y = 0; y < _video_size->height; ++y) {
+ uint8_t* q = p;
for (int x = 0; x < _video_size->width; ++x) {
Magick::Color c = magick_image->pixelColor (x, y);
- *p++ = c.redQuantum() * 255 / QuantumRange;
- *p++ = c.greenQuantum() * 255 / QuantumRange;
- *p++ = c.blueQuantum() * 255 / QuantumRange;
+ *q++ = c.redQuantum() * 255 / QuantumRange;
+ *q++ = c.greenQuantum() * 255 / QuantumRange;
+ *q++ = c.blueQuantum() * 255 / QuantumRange;
}
+ p += _image->stride()[0];
}
delete magick_image;