C# 获取图片文件大小
时间: 2023-11-22 18:46:57 浏览: 156
C#获取图片文件大小的方法有多种,以下是两种常用的方法:
方法一:使用FileInfo类获取文件大小
可以使用FileInfo类的Length属性获取文件大小,然后将其转换为MB或KB等单位。示例代码如下:
```
private double GetImageSize(string path) {
FileInfo fileInfo = new FileInfo(path);
double length = Convert.ToDouble(fileInfo.Length);
double size = length / 1024 / 1024; // MB
return size;
}
```
方法二:使用Shell32获取图片大小和分辨率
可以使用Shell32库中的NameSpace和FolderItem类获取图片的大小和分辨率。示例代码如下:
```
using Shell32;
public static void GetJpgSizeByShell(string JpgPath, out Size JpgSize, out float Wpx, out float Hpx) {
var shell = new ShellClass();
Folder der = shell.NameSpace(Path.GetDirectoryName(JpgPath));
FolderItem item = der.ParseName(Path.GetFileName(JpgPath));
JpgSize = new Size(0, 0);
try {
Wpx = float.Parse(Regex.Replace(der.GetDetailsOf(item, 161), @"[^0-9]+", "")); // 水平分辨率
int w = int.Parse(Regex.Replace(der.GetDetailsOf(item, 162), @"[^0-9]+", "")); // 图片宽像素
Hpx = float.Parse(Regex.Replace(der.GetDetailsOf(item, 163), @"[^0-9]+", "")); // 垂直分辨率
int h = int.Parse(Regex.Replace(der.GetDetailsOf(item, 164), @"[^0-9]+", "")); // 图片高像素
JpgSize.Width = w;
JpgSize.Height = h;
} catch {
JpgSize = new Size(0, 0);
Wpx = 0;
Hpx = 0;
}
}
```
阅读全文