- _decompressed = dcp::decompress_j2k (const_cast<uint8_t*> (_data.data().get()), _data.size (), reduce);
-
- if (_decompressed->precision(0) < 12) {
- int const shift = 12 - _decompressed->precision (0);
- for (int c = 0; c < 3; ++c) {
- int* p = _decompressed->data (c);
- for (int y = 0; y < _decompressed->size().height; ++y) {
- for (int x = 0; x < _decompressed->size().width; ++x) {
- *p++ <<= shift;
- }
- }
- }
- }
-
- _target_size = target_size;
- _reduce = reduce;
-
- return reduce;
-}
-
-pair<shared_ptr<Image>, int>
-J2KImageProxy::image (optional<dcp::NoteHandler>, optional<dcp::Size> target_size) const
-{
- int const reduce = prepare (target_size);
+ shared_ptr<dcp::OpenJPEGImage> decompressed = dcp::decompress_j2k (const_cast<uint8_t*> (_data.data().get()), _data.size (), reduce);
+ _image.reset (new Image (_pixel_format, decompressed->size(), true));