我正在一堆装有不同版本 Windows 的计算机上测试 JPEG 解压缩。所有这些计算机都安装了 .NET 4,我正在针对 .NET 2 和“Any 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 指令,另一台机器不允许。
关于c# - 跨 Windows 体系结构的 JPEG 解压缩不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872850/