- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am porting a function which was written using IJL. It was decoding a JPEG to DIB buffer. Currently i want to use UIC.For doing this i am taking reference from the following code snippet which is also available in the UIC documentation and forums (http://software.intel.com/en-us/forums/showthread.php?t=81584). Is this code applicable for this case too? I have not yet tried for DIB to JPEG.
Please help to know what all I am missing to convert a Jpeg to DIB.
Ref code snippet.
int i;
CStdFileInput fi;
JPEGDecoder jpegdec;
ExcStatus status;
if( !BaseStream::IsOk(fi.Open(argv[1])) )
return 1;
status = jpegdec.Init();
if(ExcStatusOk != status)
return 1;
status = jpegdec.AttachStream(fi);
if(ExcStatusOk != status)
return 1;
ImageColorSpec colorSpec;
ImageSamplingGeometry geometry;
status = jpegdec.ReadHeader(colorSpec,geometry);
if(ExcStatusOk != status)
return 1;
Image imageCn;
ImageDataOrder dataOrder;
int nOfComponents = geometry.NOfComponents();
if(colorSpec.DataRange()->BitDepth() + 1 <= 8)
dataOrder.SetDataType(T8u);
else
dataOrder.SetDataType(T16u);
dataOrder.ReAlloc(Interleaved, nOfComponents);
dataOrder.PixelStep()[0] = nOfComponents;
dataOrder.LineStep() [0] = AlignStep(geometry.RefGridRect().Width() * nOfComponents);
geometry.SetEnumSampling(S444);
imageCn.Buffer().ReAlloc(dataOrder, geometry);
imageCn.ColorSpec().ReAlloc(nOfComponents);
imageCn.ColorSpec().SetColorSpecMethod(Enumerated);
imageCn.ColorSpec().SetComponentToColorMap(Direct);
for(i = 0; i < nOfComponents; i++)
{
if(colorSpec.DataRange()->BitDepth() + 1 <= 8)
imageCn.ColorSpec().DataRange().SetAsRange8u(255);
else
imageCn.ColorSpec().DataRange().SetAsRange16u(1 <<
colorSpec.DataRange()->BitDepth());
}
imageCn.ColorSpec().SetEnumColorSpace(RGB);
status = jpegdec.SetParams(imageCn.ColorSpec(),imageCn.Buffer().BufferFormat().SamplingGeometry());
if(ExcStatusOk != status)
return 1;
status = jpegdec.ReadData(imageCn.Buffer().DataPtr(),dataOrder);
if(ExcStatusOk != status)
return 1;
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The main examplefor using UIC for JPEG decoding can be found at jpeg.cpp file. You may can check that file for the code.
Thanks,
Chao

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page