gpt4 book ai didi

c# - 如何在 C# 中读取带有位图类的 1MB .tif 文件

转载 作者:行者123 更新时间:2023-11-30 13:03:55 31 4
gpt4 key购买 nike

我有麻烦了。如何在 C# 中读取带有位图类的 1MB .tif 文件。我使用了下面的代码,但出现错误“内存不足”。我在谷歌上搜索了很多,但还没有找到任何答案。

string imgPath;
imgPath = @"C:\Documents and Settings\shree\Desktop\2012.06.09.15.35.42.2320.tif";
Image newImage = Image.FromFile(imgPath);

Bitmap img;
img = new Bitmap(imgPath, true);

MessageBox.Show("Width: "+ img.Width + " Height: " + img.Height);

最佳答案

如果您只需要读取文件的宽度和高度而不将其加载到内存中,您可以使用 WPF 的 BitmapDecoder类:

using System;
using System.IO;
using System.Linq;
using System.Windows.Media.Imaging;

class Program
{
static void Main()
{
using (var stream = File.OpenRead(@"c:\work\some_huge_image.tif"))
{
var decoder = BitmapDecoder.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.None);
var frame = decoder.Frames.First();
Console.WriteLine(
"width: {0}, height: {1}",
frame.PixelWidth,
frame.PixelHeight
);
}
}
}

如果由于某种原因您停留在某个 .NET 3.0 之前的时代,您可以查看图像元数据以提取此信息,而无需将整个图像加载到内存中,如 following answer 中所示。 .

关于c# - 如何在 C# 中读取带有位图类的 1MB .tif 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11155845/

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