我正在处理this problem而proposed solution正在为我工作。
但是,现在我需要在我的实际应用程序中使用它,这是一个AWS Beanstalk .NET Web应用程序。我的beanstalk应用程序知道图片的url源。知道了url,我可以get a stream处理文件(通过创建一个字节数组甚至一个Bitmap对象)。
但是,似乎要获取上面提到的文件属性(例如创建文件的相机类型或绘图应用程序),我真的需要一个本地文件,因为这是预期的输入参数。
对我来说这是个问题。我知道http链接,我知道字节,但我没有文件路径。
我该如何解决这个问题?我需要Windows文件属性。
答案 0 :(得分:1)
如果我理解正确,您希望首先从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;