Umbraco/.NET - 使用 GDI+ 访问图像元数据,找不到文件异常

Umbraco/.NET - using GDI+ to access image metadata, file not found exception

我正在尝试使用 System.Drawing.Image.FromFile 访问我的 Umbraco 媒体库中图像的 EXIF 元数据,同时我可以让我的代码工作,传递我硬盘上本地文件的路径(例如 c:\ example.jpg) 如果我为我的媒体库中的项目传递 URL,我会收到一个文件未找到的异常。 我尝试将 URL 与 http://localhost:xxxx 连接起来,但出现格式不正确的错误。我已经尝试使用完整的 Url 在线托管图像并获得相同的图像,这让我怀疑 FromFile 不接受 Url。 我找不到任何文档来支持这个理论,而且看起来很愚蠢?

TL;DR 为什么路径适用于 System.Drawing.Image.FromFile 但不适用于 Url?

这是我的代码:

var testImage = Model.Value<IPublishedContent>("testImage");
System.Drawing.Image image = System.Drawing.Image.FromFile(testImage.Url);

我敢猜测 Image.FromFile 需要一个正确的文件路径,而不是像您提供的 URL。

看看这个问题:ASP.NET Get physical filepath from URL 看看提供的选项是否适合您。

所以你会做类似的事情

var testImage = Model.Value<IPublishedContent>("testImage");
var physicalPath = Server.MapPath(testImage.Url);
System.Drawing.Image image = System.Drawing.Image.FromFile(physicalPath);

(我没有测试过,但我希望它能让你更接近一些)