Add debug prints to the PSD loader in imbuf. The error message can be obtained from OIIO by geterror().

This commit is contained in:
Irie Shinsuke 2013-10-18 10:43:54 +00:00
parent 9afddac727
commit 38c16f9bf4

@ -98,11 +98,17 @@ static ImBuf *imb_oiio_load_image(ImageInput *in, int width, int height, int com
try try
{ {
in->read_image(TypeDesc::UINT8, if (!in->read_image(TypeDesc::UINT8,
(uchar *)ibuf->rect + (height - 1) * scanlinesize, (uchar *)ibuf->rect + (height - 1) * scanlinesize,
AutoStride, AutoStride,
-scanlinesize, -scanlinesize,
AutoStride); AutoStride)) {
std::cerr << __func__ << ": ImageInput::read_image() failed:" << std::endl
<< in->geterror() << std::endl;
if (ibuf) IMB_freeImBuf(ibuf);
return NULL;
}
} }
catch (const std::exception &exc) catch (const std::exception &exc)
{ {
@ -128,11 +134,17 @@ static ImBuf *imb_oiio_load_image_float(ImageInput *in, int width, int height, i
try try
{ {
in->read_image(TypeDesc::FLOAT, if (!in->read_image(TypeDesc::FLOAT,
(uchar *)ibuf->rect_float + (height - 1) * scanlinesize, (uchar *)ibuf->rect_float + (height - 1) * scanlinesize,
AutoStride, AutoStride,
-scanlinesize, -scanlinesize,
AutoStride); AutoStride)) {
std::cerr << __func__ << ": ImageInput::read_image() failed:" << std::endl
<< in->geterror() << std::endl;
if (ibuf) IMB_freeImBuf(ibuf);
return NULL;
}
} }
catch (const std::exception &exc) catch (const std::exception &exc)
{ {
@ -191,12 +203,18 @@ struct ImBuf *imb_load_photoshop(const char *filename, int flags, char colorspac
colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE); colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
in = ImageInput::create(filename); in = ImageInput::create(filename);
if (!in) return NULL; if (!in) {
std::cerr << __func__ << ": ImageInput::create() failed:" << std::endl
<< OpenImageIO::geterror() << std::endl;
return NULL;
}
ImageSpec spec, config; ImageSpec spec, config;
config.attribute("oiio:UnassociatedAlpha", (int) 1); config.attribute("oiio:UnassociatedAlpha", (int) 1);
if (!in->open(filename, spec, config)) { if (!in->open(filename, spec, config)) {
std::cerr << __func__ << ": ImageInput::open() failed:" << std::endl
<< in->geterror() << std::endl;
delete in; delete in;
return NULL; return NULL;
} }