gdiplus: Set flags and dpi when images are loaded.

This commit is contained in:
Vincent Povirk 2010-07-02 17:39:17 -04:00 committed by Alexandre Julliard
parent 1ce8be01f2
commit 77a5b635aa
1 changed files with 18 additions and 0 deletions

View File

@ -2606,6 +2606,18 @@ static GpStatus decode_image_wic(IStream* stream, REFCLSID clsid, GpImage **imag
*image = NULL;
GdipDisposeImage((GpImage*)bitmap);
}
if (SUCCEEDED(hr) && status == Ok)
{
double dpix, dpiy;
hr = IWICBitmapSource_GetResolution(source, &dpix, &dpiy);
if (SUCCEEDED(hr))
{
bitmap->image.xres = dpix;
bitmap->image.yres = dpiy;
}
hr = S_OK;
}
}
IWICBitmapSource_Release(source);
@ -2621,6 +2633,12 @@ end:
if (FAILED(hr) && status == Ok) status = hresult_to_status(hr);
if (status == Ok)
{
/* Native GDI+ used to be smarter, but since Win7 it just sets these flags. */
bitmap->image.flags |= ImageFlagsReadOnly|ImageFlagsHasRealPixelSize|ImageFlagsHasRealDPI|ImageFlagsColorSpaceRGB;
}
return status;
}