+ ensure_j2k ();
+
+ if (_j2k->opj_image()->comps[0].prec < 12) {
+ int const shift = 12 - _j2k->opj_image()->comps[0].prec;
+ for (int c = 0; c < 3; ++c) {
+ int* p = _j2k->data (c);
+ for (int y = 0; y < _j2k->size().height; ++y) {
+ for (int x = 0; x < _j2k->size().width; ++x) {
+ *p++ <<= shift;
+ }
+ }
+ }
+ }
+
+ shared_ptr<Image> image (new Image (pixel_format(), _size, true));
+
+ /* Copy data in whatever format (sRGB or XYZ) into our Image; I'm assuming
+ the data is 12-bit either way.
+ */