我正在使用不同版本的 Windows 的一堆计算机上测试 JPEG 解压缩。所有这些计算机都安装了 .NET 4,我正在针对 .NET 2 和“任何 CPU”平台目标进行编译。以下代码在不同的系统上产生不同的输出。
Bitmap bmp = (Bitmap)Image.FromFile("test.jpg");
long datasum = 0;
for (int y = 0; y < bmp.Height; y++)
for (int x = 0; x < bmp.Width; x++)
datasum = datasum + bmp.GetPixel(x, y).R + bmp.GetPixel(x, y).G + bmp.GetPixel(x, y).B;
Console.WriteLine(datasum);
所有 Win7 64 位和 WinXP 32 位计算机都会产生一种结果。所有Win7 32位机器都会产生另一个结果。
任何想法为什么输出会不同?
它是由gdiplus.dll 实现的。检查不同系统上实际加载的版本以及位数。
可能存在浮点问题,一台机器允许 MMX 指令,另一台机器不允许。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)