2011-12-01 89 views
1

我目前正在研究一个控件,该控件显示文件夹内的所有图像,以便客户端知道它们上传的内容。FileInfo变量中的图像大小

我已设置了要显示的属性,以便让他们知道他们上传的内容。到目前为止,一切进展顺利,但我遇到了一个小问题。

我想要做的是显示上传图片的高度和宽度,但我目前找不到这样做的方法。任何人都可以指出我在正确的方向?

到目前为止,我的代码如下所示:

FileInfo[] files = new DirectoryInfo(Server.MapPath(@"..\_includes\images\uploads\") + folder).GetFiles(); 

var imagefiles = from FileInfo f in files 
         where f.Exists 
         select new 
         { 
          url = imageurl + f.Name, 
          name = f.Name, 
          creation = f.CreationTime.ToLongDateString(), 
          filesize = (f.Length/1024).ToString() + "KB", 
         }; 

回答

3

您需要将图像加载到一个Image对象 - 这会给你的图像的尺寸。

using(var img = Image.FromFile(file.Name)) 
{ 
    var height = img.Height; 
    var width = img.Width; 
} 
+0

你能告诉我如何修改我的代码吗? – Callum

+0

如何阅读图像元数据 http://msdn.microsoft.com/en-us/library/xddt0dz7.aspx –

+0

@Callum - 我不会在LINQ查询中执行图像操作。你可以遍历'imagefiles'并使用循环中的示例代码。 – Oded

1

你可以尝试(但可能是内存和CPU消耗)

Image img = Image.FromFile(your_file); 

,并使用img.Widthimg.Height

请注意,这些信息可能是错误:请参阅我的question