“The image format is unrecognized” depending on mo

2019-02-16 09:01发布

We have a C# WPF project (.NET 4.0, Visual Studio 2010). It has been tested on both Windows XP and Windows 7 and seems to work fine, but now I have received reports from two customers on the field (both located in Spain for some reason) who cannot start the software.

Looking at the log file I see that they get "The image format is unrecognized" exception (Caused by: Exception from HRESULT: 0x88982F07).

I have googled on the error and I have found that this seems to be that WPF fails to load the Vista PNG icon on Windows XP. But those reports are a couple of years old, surely Microsoft resolved it by now (?), and in my case it works fine on most XP installations. I really don't want to limit the icon appearance on more recent Windows.

The most common use of our application is on Laptops, and one of the users reported that when he connected his laptop to an external monitor the problem got resolved. And when I asked the other one to test the same thing he had the same result.

So my questions are: Do you know if this problem has been resolved by Microsoft? Do you know why it only happens on some Windows XP instances and how it is related to the monitor? And most importantly, do you know what I could do to make our application more robust to this without changing the icon?

3条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-02-16 09:54

this issue has had me pulling my hair off for quite a long time, and I have spent quite a while trying to figure out what was going on so I'll share my conclusions since it might help someone else (possibly even myself in the future) :

https://social.msdn.microsoft.com/Forums/vstudio/en-US/9e723d51-0e26-4609-8fe1-5e0edcf7385b/setting-windowicon-to-vista-256x256-png-icon-causes-a-fileformatexception?forum=wpf seems to indicate it'll resolve itself if you don't compress the icon. – Joachim Isaksson Jan 23 '12 at 12:44

so I looked up in icoFx (that I use for my icon editing) and sure enough :

options window in icoFx

I simply unchecked this and saved my .ico again (size went from 30Kb up to 286Kb in the process!) and voilà!

problem solved

查看更多
Anthone
3楼-- · 2019-02-16 09:55

I've had a bit of fun with this problem this morning. It turned out that the error was occurring only on XP machines where the colour settings were set to 16 bit, and when I changed it to 32-bit the problem magically disappeared.

This goes for XP (including Embedded) SP3.

查看更多
不美不萌又怎样
4楼-- · 2019-02-16 09:58

I had the same error today, out of the blue, and only on my development machine. The WPF implementation seems to be still buggy.

If I understand this (article) right, it can occur everywhere ICO files are read. In my case it was while setting an icon for the main application window in XAML:

<Window x:Class="MyApp.MainWindow"  Icon="Dashboard.ico" >

The above code failed suddenly, but using a PNG file solved the problem:

<Window x:Class="MyApp.MainWindow"  Icon="Dashboard.png" >
查看更多
登录 后发表回答