C#快速获取图像大小和分辨率(shell32)

VS中引用 .COM 中的 Microsoft Shell Controls and Automation 修改嵌入互操作类型为 False

然后 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;
	}
}

 

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    请登录后查看评论内容