我正在研究 this problem和 proposed solution对我有用。
但是,现在我需要在我的实际应用程序(AWS Beanstalk .NET Web 应用程序)中完成这项工作。我的 beantalk 应用程序知道图片的 url 来源。知道网址,我可以 get a stream并处理文件(通过创建字节数组甚至位图对象)。
但是,似乎要获取上述文件属性(例如创建文件的相机类型或绘画应用程序),我确实需要一个本地文件,因为这是预期的输入参数。
这对我来说是个问题。我知道 http 链接,我知道字节,但我没有文件路径之类的东西。
我该如何解决这个问题?我需要 Windows 文件属性。
最佳答案
如果我没理解错的话,您想从 URL 中读取图像元数据而不先将其保存到文件中,即直接从 Internet 中读取。
这是一种对我有用的方法:
string demoImageUrl = "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/Canon_40D.jpg";
byte[] imgData = null;
using (var wc = new WebClient())
{
imgData = wc.DownloadData(demoImageUrl);
}
using (var sr = new MemoryStream(imgData, false))
{
BitmapSource image = BitmapFrame.Create(sr);
BitmapMetadata md = (BitmapMetadata)image.Metadata;
string comment = md.Comment;
string title = md.Title;
string dateTaken = md.DateTaken;
}
您需要添加对 PresentationCore
和 WindowsBase
程序集的引用,并且还包括以下命名空间:
using System.Windows.Media.Imaging;
关于asp.net - 使用 http 链接提取 Windows 文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50411897/