windowscodecs: Add support for 16bppGray and 32bppGrayFloat formats to TIFF decoder.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Dmitry Timoshkov 2020-04-21 12:01:57 +08:00 committed by Alexandre Julliard
parent b34d4bdcb8
commit fa753b5cf2
2 changed files with 22 additions and 2 deletions

View File

@ -1223,6 +1223,8 @@ static GUID const * const tiff_decode_formats[] = {
&GUID_WICPixelFormatBlackWhite,
&GUID_WICPixelFormat4bppGray,
&GUID_WICPixelFormat8bppGray,
&GUID_WICPixelFormat16bppGray,
&GUID_WICPixelFormat32bppGrayFloat,
&GUID_WICPixelFormat1bppIndexed,
&GUID_WICPixelFormat2bppIndexed,
&GUID_WICPixelFormat4bppIndexed,

View File

@ -319,6 +319,8 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info)
}
decode_info->planar = planar;
TRACE("planar %u, photometric %u, samples %u, bps %u\n", planar, photometric, samples, bps);
switch(photometric)
{
case 0: /* WhiteIsZero */
@ -383,9 +385,25 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info)
}
}
break;
case 16:
if (samples != 1)
{
FIXME("unhandled 16bpp grayscale sample count %u\n", samples);
return WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT;
}
decode_info->format = &GUID_WICPixelFormat16bppGray;
break;
case 32:
if (samples != 1)
{
FIXME("unhandled 32bpp grayscale sample count %u\n", samples);
return WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT;
}
decode_info->format = &GUID_WICPixelFormat32bppGrayFloat;
break;
default:
FIXME("unhandled greyscale bit count %u\n", bps);
return E_FAIL;
WARN("unhandled greyscale bit count %u\n", bps);
return WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT;
}
break;
case 2: /* RGB */