如果图像的宽度/高度存储在我的计算机中,我设法使用以下代码:( Fullpath是文件的完整位置)
var bitmapFrame = BitmapFrame.Create(new Uri(FullPath), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
var width = bitmapFrame.PixelWidth;
var height = bitmapFrame.PixelHeight;
但是第二次我尝试将FullPath更改为互联网图像(例如http://www.interweb.in/attachments/pc-wallpapers/16187d1222942178-nature-wallpaper-nature-summer-wallpaper.jpg),宽度和高度将无法确定所需的实际值,并且将保留值“1”。
我一直在这里坐了几个小时试图找出问题所在并绕过它但没有成功。 非常感谢你提前!
答案 0 :(得分: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
事件。