gpt4 book ai didi

c# - 同一文件的大小差异,在 Windows XP 和 Windows 7 上阅读

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:34 27 4
gpt4 key购买 nike

我正在尝试将图像文件读取到流中。但是当我在 Windows XP 和 Windows 7 上运行程序时,流的长度有所不同(两个系统上的图像文件相同)。这是我的代码:

private void ImageToStream(Stream stream, string imgPath)
{
System.Drawing.Image img = null;
img = System.Drawing.Image.FromFile(imgPath, true);
img.Save(stream, img.RawFormat);
}

当然,我在两个系统上使用相同的图像进行测试。

文件系统是NTFS。当我将这张照片发布到网站时,它在 Windows 7 上运行良好,在 Windows XP 上运行不正常。我想知道在 Windows 7 和 Windows XP 中从流中读取图像时有什么不同吗?

提前致谢!

最佳答案

我已经解决了问题。

private void ImageToStream(Stream stream, string imgPath)
{
FileStream fileStream = new FileStream(imgPath,
FileMode.Open, FileAccess.Read);
byte[] buffer = new Byte[checked((uint)Math.Min(4096,
(int)fileStream.Length))];
int bytesRead = 0;
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
stream.Write(buffer, 0, bytesRead);
}

现在两个系统都可以正常工作。我认为是因为 Image.FromFile 使用 native GDI 调用来加载图像。我已经使用了新代码并且它现在工作正常。

关于c# - 同一文件的大小差异,在 Windows XP 和 Windows 7 上阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26052070/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com