Commit c30d165e authored by Vincent Povirk's avatar Vincent Povirk Committed by Alexandre Julliard

windowscodecs: Add support for decoding 48-bit TIFF images.

parent 467f232f
......@@ -895,6 +895,7 @@ static GUID const * const tiff_formats[] = {
&GUID_WICPixelFormat32bppBGR,
&GUID_WICPixelFormat32bppBGRA,
&GUID_WICPixelFormat32bppPBGRA,
&GUID_WICPixelFormat48bppRGB,
NULL
};
......
......@@ -257,9 +257,11 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info)
}
break;
case 2: /* RGB */
if (bps != 8)
ret = pTIFFGetField(tiff, TIFFTAG_PLANARCONFIG, &planar);
if (!ret) planar = 1;
if (planar != 1)
{
FIXME("unhandled RGB bit count %u\n", bps);
FIXME("unhandled planar configuration %u\n", planar);
return E_FAIL;
}
ret = pTIFFGetField(tiff, TIFFTAG_SAMPLESPERPIXEL, &samples);
......@@ -268,16 +270,22 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info)
FIXME("unhandled RGB sample count %u\n", samples);
return E_FAIL;
}
ret = pTIFFGetField(tiff, TIFFTAG_PLANARCONFIG, &planar);
if (!ret) planar = 1;
if (planar != 1)
decode_info->bpp = bps * samples;
switch(bps)
{
FIXME("unhandled planar configuration %u\n", planar);
case 8:
decode_info->reverse_bgr = 1;
decode_info->format = &GUID_WICPixelFormat24bppBGR;
break;
case 16:
decode_info->format = &GUID_WICPixelFormat48bppRGB;
break;
default:
FIXME("unhandled RGB bit count %u\n", bps);
return E_FAIL;
}
decode_info->bpp = bps * samples;
decode_info->reverse_bgr = 1;
decode_info->format = &GUID_WICPixelFormat24bppBGR;
break;
case 3: /* RGB Palette */
decode_info->indexed = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment