WPF - 从互联网 URL 获取图像宽度/高度
Posted
技术标签:
【中文标题】WPF - 从互联网 URL 获取图像宽度/高度【英文标题】:WPF - Getting Image Width/Height from internet URL 【发布时间】:2013-11-08 06:53:21 【问题描述】:如果使用以下代码将图像存储在我的计算机中,我已经设法获取图像的宽度/高度:(完整路径是文件的完整位置)
var bitmapFrame = BitmapFrame.Create(new Uri(FullPath), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
var width = bitmapFrame.PixelWidth;
var height = bitmapFrame.PixelHeight;
但第二次我尝试将 FullPath 更改为 Internet 图像(例如 http://www.interweb.in/attachments/pc-wallpapers/16187d1222942178-nature-wallpaper-nature-summer-wallpaper.jpg)时,宽度和高度将无法确定所需的实际值,而只会保留为“1”的值。
我已经在这里坐了几个小时,试图找出问题所在并解决问题,但没有成功。 非常感谢您!
【问题讨论】:
【参考方案1】:试试这个。对于网络Uri
ImageSource
会异步下载图片,避免阻塞。
var bitmapFrame = BitmapFrame.Create(new Uri(FullPath), BitmapCreateOptions.None, BitmapCacheOption.None);
if(bitmapFrame.IsDownloading)
bitmapFrame.DownloadCompleted += (e, arg) =>
var width = bitmapFrame.PixelWidth;
var height = bitmapFrame.PixelHeight;
您想等待DownloadCompleted
事件。
【讨论】:
我尝试复制您的建议(我唯一更改的是将参数名称从 e 更改为 t,因为我正在单击按钮进行测试)但值仍然是 1。 我发现了问题,它需要是 BitmapCreateOptions.None 而不是 BitmapCreateOptions.DelayCreation 。非常感谢:)!以上是关于WPF - 从互联网 URL 获取图像宽度/高度的主要内容,如果未能解决你的问题,请参考以下文章
php 从 url 获取宽度和高度 >=200 的所有图像更快
PHP - 在不加载图像的情况下获取有关图像(高度和宽度)的信息