windowscodecs: Add support for decoding 48-bit TIFF images.
This commit is contained in:
parent
467f232f37
commit
c30d165ec8
|
@ -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,17 +270,23 @@ 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)
|
||||
{
|
||||
FIXME("unhandled planar configuration %u\n", planar);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
decode_info->bpp = bps * samples;
|
||||
|
||||
switch(bps)
|
||||
{
|
||||
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;
|
||||
}
|
||||
break;
|
||||
case 3: /* RGB Palette */
|
||||
decode_info->indexed = 1;
|
||||
decode_info->bpp = bps;
|
||||
|
|
Loading…
Reference in New Issue