无效参数仅从流c#XP创建图像或位图

时间:2012-12-28 13:25:55

标签: c# stream windows-xp gdi+ embedded-resource

我相信我所做的非常标准。我通过在资源上调用GetManifestResourceStream从嵌入式资源创建一些图像,为它提供.ico文件的路径:

Bitmap bmp = new Bitmap(Assembly.GetEntryAssembly().GetManifestResourceStream("MeterView.Resources.unlocked.ico"));

然后使用位图在表单上显示图像。这在Windows 7和8上一直都很完美,但是现在当我尝试在XP SP3盒子上运行应用程序时,我会在将流转换为位图的行上获得“无效参数”。我也尝试过使用Image.FromStream,但结果相同。

资源上的构建操作设置为Embedded Resource。任何人有任何想法如何解决这个问题?我也试过重置流,这也没有区别。

提前感谢任何建议。

图标文件来自此应用程序的原始版本,该版本是在Visual Basic中为XP编写的。我相信它们是在VB中手动生成的。我已经回收了所有这些图标,用于在C#中重写此应用程序。这是我第一次遇到问题。

1 个答案:

答案 0 :(得分:0)

感谢所有建议。我确实尝试将代码分解为单独的行,实际上是从流中创建位图。在几个不同的XP系统上都失败了,所有XP系统都运行了安装了.NET 4框架的SP3。

将原始ico文件转换为png文件,然后将它们转换为位图工作,图像质量没有明显下降。