Hi All,

I am trying to read exr image as RGB into a buffer. However,it seems to be
read into
an offset instead of being coping at the beginning. Therefore, when i view
the image,
it starts at offset say x=180, y= 3 for an image with Width=610 and height =
406.
I am using the images  provided in the  OpenEXR website.

I am using the following code fragment to read. when i use the RGBA
interface to read,
it seem to work fine.

Imf::InputFile imfFile("file.exr");
Box2i dw = imfFile.header().dataWindow();
int Width  = dw.max.x - dw.min.x + 1;
int Height = dw.max.y - dw.min.y + 1;
int bpc = sizeof(half);
int bpp = 3 * sizeof(half);
int bpr = bpp * Width;

Imf::FrameBuffer fb;
fb.insert("R", Imf::Slice(Imf::HALF, p_Data + 0 * bpc - (dw.min.x + dw.min.y
* Width) * bpp, bpp, bpr,1, 1, 0.0));
fb.insert("G", Imf::Slice(Imf::HALF, p_Data + 1 * bpc - (dw.min.x + dw.min.y
* Width) * bpp, bpp, bpr, 1, 1, 0.0));
fb.insert("B", Imf::Slice(Imf::HALF, p_Data + 2 * bpc - (dw.min.x + dw.min.y
* Width) * bpp, bpp, bpr, 1,1, 0.0));
imfFile.setFrameBuffer(fb);
imfFile.readPixels (dw.min.y, dw.max.y);


I must be doing something obviously wrong, but not able to spot it. any
pointers reference highly appreciate it.

Kugan
_______________________________________________
Openexr-devel mailing list
Openexr-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/openexr-devel

Reply via email to