如何获取图像的宽度和高度

发布于 2024-10-27 23:53:10 字数 271 浏览 0 评论 0原文

我正在尝试获取图像的高度,如下所示

BitmapImage bitmap = new BitmapImage(new Uri("Images/header.png",UriKind.RelativeOrAbsolute));
Debug.WriteLine("bitmap.PixelHeight : " + bitmap.PixelHeight); 

它将高度打印为 0,但实际图像的高度为 35 像素。它不是从服务器加载的图像。它存储在应用程序包本身内部。

I am trying to get the height of an image like the following

BitmapImage bitmap = new BitmapImage(new Uri("Images/header.png",UriKind.RelativeOrAbsolute));
Debug.WriteLine("bitmap.PixelHeight : " + bitmap.PixelHeight); 

It is printing the height as 0, but the actual image's height is 35 pixels. It is not an image loaded from server. It is stored inside the application bundle itself.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦言归人 2024-11-03 23:53:10

您稍后会在项目中使用位图吗?如果您将其用作图像中的源,则可以尝试 Image.ActualHeight 和 Image.ActualWidth

Do you use your bitmap later in your project? If you are using it as Source in Image, you can try Image.ActualHeight and Image.ActualWidth

探春 2024-11-03 23:53:10

如果它不是从服务器加载,它仍然可能被异步加载和处理。如果您在知道图像可见后使用相同的 Debug.WriteLine 调用,是否会给出正确的结果?

If though it's not loaded from a server, it may still be loaded and processed asynchronously. If you use the same Debug.WriteLine call after you know the image is visible, does that give the right results?

深者入戏 2024-11-03 23:53:10

您必须等待 ImageOpened 事件才能获取宽度/高度值。这是因为从 URI 加载时会异步创建 BitmapImage(即使文件位于本地)。仅当您从流加载它时,它才会同步创建。

另一件需要注意的事情是 BitmapImage.CreateOption 默认设置为 DelayCreation,这意味着只有当 BitmapImage 分配给活动树中的元素时才会创建它。您可以设置 CreateOption = None 来更改它。

You have to wait for the ImageOpened event before you can get the Width/Heigth values. This is because the BitmapImage is being created asynchronously when loaded from a URI (even when the file is local). Only if you load it from a stream it gets created synchronously.

The other thing to be aware of is that BitmapImage.CreateOption is by default set to DelayCreation, which means it will only be created when the BitmapImage is assigned to an element in the live tree. You can set CreateOption = None to change that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文