栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

C#.NET位图的最大分辨率是多少?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#.NET位图的最大分辨率是多少?

这是Windows施加的GDI +限制。GDI
+为位图的像素数据创建一个内存映射文件视图。这使其非常有效,位图往往很大,而MMF有助于将像素数据保留在页面文件之外。RAM页面可以简单地丢弃并从文件中重新读取。同样非常出名的是,许多程序员在忘记处理旧位图时,看到Save()调用失败,并出现了异常异常。

Windows限制了MMF视图的大小,换句话说,可以限制文件中可以直接寻址的数据量,如MSDN文章所述:

由命名文件支持的文件映射对象的大小受磁盘空间限制。文件视图的大小被限制为未保留虚拟内存的最大可用连续块。这最多是2 GB减去该进程已保留的虚拟内存。

“最大的可用连续块”是32位进程中的限制,可能会徘徊在600 MB左右,即取即用。2 GB限制在64位进程中开始。从技术上讲,GDI
+可以通过重新映射视图来绕过此限制。但事实并非如此,LockBits()方法(内部也大量使用)效率低下,使用起来很笨拙。

要使用更大的位图,您需要转到GDI +的后继产品WIC(Windows Imaging
Component)。通过System.Windows.Media.Imaging命名空间在.NET中公开。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411878.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号