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[] = { ...@@ -895,6 +895,7 @@ static GUID const * const tiff_formats[] = {
&GUID_WICPixelFormat32bppBGR, &GUID_WICPixelFormat32bppBGR,
&GUID_WICPixelFormat32bppBGRA, &GUID_WICPixelFormat32bppBGRA,
&GUID_WICPixelFormat32bppPBGRA, &GUID_WICPixelFormat32bppPBGRA,
&GUID_WICPixelFormat48bppRGB,
NULL NULL
}; };
......
...@@ -257,9 +257,11 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) ...@@ -257,9 +257,11 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info)
} }
break; break;
case 2: /* RGB */ 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; return E_FAIL;
} }
ret = pTIFFGetField(tiff, TIFFTAG_SAMPLESPERPIXEL, &samples); ret = pTIFFGetField(tiff, TIFFTAG_SAMPLESPERPIXEL, &samples);
...@@ -268,16 +270,22 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) ...@@ -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); FIXME("unhandled RGB sample count %u\n", samples);
return E_FAIL; return E_FAIL;
} }
ret = pTIFFGetField(tiff, TIFFTAG_PLANARCONFIG, &planar);
if (!ret) planar = 1; decode_info->bpp = bps * samples;
if (planar != 1)
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; return E_FAIL;
} }
decode_info->bpp = bps * samples;
decode_info->reverse_bgr = 1;
decode_info->format = &GUID_WICPixelFormat24bppBGR;
break; break;
case 3: /* RGB Palette */ case 3: /* RGB Palette */
decode_info->indexed = 1; 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