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);
答案 0 :(得分:2)
如果您只是需要读取文件的宽度和高度而不将其加载到内存中,您可以使用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
);
}
}
}
如果由于某种原因你被困在一些pre -.NET 3.0时代,你可以查看图像元数据来提取这些信息而不将整个图像加载到内存中,如following answer所示。
答案 1 :(得分:-2)
从1MB大小的文件创建一个Bitmap对象没有问题。它可以很容易地使用更大的图像。我尝试使用16MB的图像。你使用了大量不需要的代码。只需使用
Bitmap mybitmap=new Bitmap(path);