c# – 为什么这个位图图像在加载后会改变它的大小?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 为什么这个位图图像在加载后会改变它的大小?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1527字,纯文字阅读大概需要3分钟。
内容图文
![c# – 为什么这个位图图像在加载后会改变它的大小?](/upload/InfoBanner/zyjiaocheng/806/df5bb3807a884f1aad13ec62d6ca66fd.jpg)
快速提问:
我有这个1000 x 1000位图图像:
我用这个例程来加载它:
private BitmapSource initialBitmap = new BitmapImage(new Uri("C:\\Users\\...\\Desktop\\Original.bmp"));
为什么在我加载之后,在我跨过上面的线后,我看到它是800 x 800?
P.S我希望它是1000 x 1000并且不使用任何Resize功能.它工作,突然它是800 * 800!
解决方法:
BitmapSource.Width和BitmapSource.Height返回的值不是像素,而是WPF的设备无关单位,总是96 dpi.例如.:
Gets the width of the bitmap in device-independent units (1/96th inch per unit).
如果您想知道实际的像素宽度和高度,则需要使用PixelWidth和PixelHeight属性.
你的问题不是很具体,但如果你真正关心的是将位图显示的大小与创作的大小相同,那么最简单的解决方案就是确保你以96 dpi的速度创作它.无论您使用什么程序来创作位图,都可以在其中设置位图分辨率.通常,这可以在改变或不改变图像的像素尺寸的情况下设置(即,将图像缩放得更大或更小);您希望在不缩放图像的情况下执行此操作,以便像素尺寸保持不变,但dpi会更改以匹配WPF正在使用的内容.
请注意,这仍然不能保证位图显示在特定的像素大小.显示分辨率可以且通常不同于96 dpi,在这种情况下,WPF将缩放图像以确保图像的物理尺寸(即以英寸,毫米等为单位的尺寸)根据位图中的信息是正确的.例如,96 dpi时960像素宽意味着10“宽.在120 dpi显示器上,这意味着显示足够大的位图,使其宽度使用1200个显示像素.
如果您希望或需要位图以完全相同数量的显示像素显示,而不管显示分辨率如何,那么您必须设置一个转换,您可以在其中显示图像以反转WPF否则将执行的缩放效果.当然,这需要知道显示分辨率.
以下是一些您可能会觉得有用的其他相关Stack Overflow问题:
RenderTargetBitmap renders image of a wrong size
WPF for LCD screen Full HD
Screen Resolution Problem In WPF?
内容总结
以上是互联网集市为您收集整理的c# – 为什么这个位图图像在加载后会改变它的大小?全部内容,希望文章能够帮你解决c# – 为什么这个位图图像在加载后会改变它的大小?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。