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

windowscodecs: Ignore the alpha channel of ICO files if it's empty.

parent 226c4409
......@@ -277,6 +277,30 @@ static HRESULT ReadIcoDib(IStream *stream, IcoFrameDecode *result)
IWICBitmapFrameDecode_Release(framedecode);
}
if (SUCCEEDED(hr) && has_alpha)
{
/* If the alpha channel is fully transparent, we should ignore it. */
int nonzero_alpha = 0;
int i;
for (i=0; i<(result->height*result->width); i++)
{
if (result->bits[i*4+3] != 0)
{
nonzero_alpha = 1;
break;
}
}
if (!nonzero_alpha)
{
for (i=0; i<(result->height*result->width); i++)
result->bits[i*4+3] = 0xff;
has_alpha = FALSE;
}
}
if (SUCCEEDED(hr) && !has_alpha)
{
/* set alpha data based on the AND mask */
......
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