From fb87ee2464ea9904b8aa3f1bbdb52a94f610e492 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Mon, 18 Mar 2013 14:22:13 +0900 Subject: [PATCH] windowscodecs: Make JPEG decoder fallback to 96 dpi resolution for density_unit == 0 case. --- dlls/windowscodecs/jpegformat.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/dlls/windowscodecs/jpegformat.c b/dlls/windowscodecs/jpegformat.c index 6f2653dc4d7..c742f786f9a 100644 --- a/dlls/windowscodecs/jpegformat.c +++ b/dlls/windowscodecs/jpegformat.c @@ -548,16 +548,23 @@ static HRESULT WINAPI JpegDecoder_Frame_GetResolution(IWICBitmapFrameDecode *ifa EnterCriticalSection(&This->lock); - if (This->cinfo.density_unit == 2) /* pixels per centimeter */ + switch (This->cinfo.density_unit) { + case 2: /* pixels per centimeter */ *pDpiX = This->cinfo.X_density * 2.54; *pDpiY = This->cinfo.Y_density * 2.54; - } - else - { - /* 1 = pixels per inch, 0 = unknown */ + break; + + case 1: /* pixels per inch */ *pDpiX = This->cinfo.X_density; *pDpiY = This->cinfo.Y_density; + break; + + case 0: /* unknown */ + default: + *pDpiX = 96.0; + *pDpiY = 96.0; + break; } LeaveCriticalSection(&This->lock);