我正在使用 .NET 框架(尝试 3.5 和 4.0)来加载 .TIFF 文件并将其保存为 .PNG。我希望对 Save() 方法的两个后续调用(使用相同的 TIFF 文件)生成相同的 PNG 文件。但是,生成的文件“有时”是不同的。
下面的 C# 代码显示了问题:
Image sourceToConvert = Bitmap.FromFile("c:\\tmp\\F1.tif");
sourceToConvert.Save("c:\\tmp\\F1_gen.png", ImageFormat.Png);
for (int i = 0; i < 100; i++)
{
sourceToConvert = Bitmap.FromFile("c:\\tmp\\F1.tif");
sourceToConvert.Save("c:\\tmp\\F1_regen.png", ImageFormat.Png);
if (!CompareFileBytes("c:\\tmp\\F1_gen.png", "c:\\tmp\\F1_regen.png"))
MessageBox.Show("Diff" + i);
}
这将在 Windows 64 上的第 8、32、33、73 114、155、196 次迭代中显示“Diff”,而在 32 位机器上不显示任何错误。(我使用 x86 目标;使用 x64 目标更糟糕:迭代 12、13、14、15 时的差异,...)
有没有办法从 Save() 获得可重现的结果?
可以在此FTP 站点上找到示例图像