社区
C#
帖子详情
关于bitmap复制的效率问题
shanying_0
2008-09-16 01:30:15
我有1个大的bitmap,我想复制他,以为要频繁的复制使用他,所以就要考虑效率的问题!!!
有没有什么好的方法么
1》DrawImage方法不行!
//Bitmap tempbitmap = new Bitmap(insertrect.Width, insertrect.Height);以为要new出一块来存放我复制下来的bitmap。所以效率不理想
2》Clone 方法比上一个稍微好点。但是效果也不理想。
大家还有什么好的建议么?????
...全文
687
8
打赏
收藏
关于bitmap复制的效率问题
我有1个大的bitmap,我想复制他,以为要频繁的复制使用他,所以就要考虑效率的问题!!! 有没有什么好的方法么 1》DrawImage方法不行! //Bitmap tempbitmap = new Bitmap(insertrect.Width, insertrect.Height);以为要new出一块来存放我复制下来的bitmap。所以效率不理想 2》Clone 方法比上一个稍微好点。但是效果也不理想。 大家还有什么好的建议么?????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Mittermeyer
2008-09-16
打赏
举报
回复
看起来就是做一个图片的漫游呀,我觉得问题在于是不是每次都需要创建一个临时的Bitmap。
我觉得这类应用通常是这样的,完整地图(总背景)是一个Bitmap,然后创建一个和输出视口一样大的Bitmap作为缓存,每次显示位置变化时,把背景绘制到缓存的Bitmap上(这是不需要创建新的Bitmap的),然后再在缓存的Bitmap上绘制其它内容,最后输出到窗口DC上就可以了。
如果觉得GDI+慢,就用GDI吧。
如果不知道怎么把一个Bitmap绘制到另一个Bitmap上的话,看下面的代码:
Graphics g = Graphics.FromImage(bmpBuf);
g.DrawImage(...);
GDI的话就是创建一个兼容DC,过程和GDI+类似。
shanying_0
2008-09-16
打赏
举报
回复
楼上的大哥。“貌似DrawImage即便是绘制图片的一部分和整幅图也没啥区别,不过即便如此的话,也要比创建一个新的Bitmap要好些呀。“
我明白你的意思。但是我要把绘制图片的一部分放在内存中。你说是不是要建立一个先的bitmap!!!
在说了,利用双缓冲绘制图形,首先不是的要建立一个内存的bitmap么。然后把内存的bitmap显示到绘制表面上。
我现在的问题是第1次在内存的bitmap上绘制以后,由于某些操作,我需要把原来内存上一部分保留。另一部分进行重新绘制,但是保留的部分并不是原来的位置(可能向左移动,也可能向右移动!),我需要移动他的位置以适应新的。然后把剩余的内存bitmap进行从新绘制,然后在显示到绘制表面上!!
这个过程中。在保留原来内存bitmap的时候是不是需要建立个新的bitmap,然后在把这个bitmap绘制到原来内存bitmap上呀!!!这就需要建立个新的bitmap对象!!这样一样效率貌似就蜗牛了。
有没有好的好的方法实现我说的呢,并且不用建立一个新的bitmap!!!!
Mittermeyer
2008-09-16
打赏
举报
回复
PS:为什么DrawImage不行,如果DrawImage不行,那么bltbit就可以了?两者做的事情本质是一样的。
就效率而言,个人经验,bltbit好些。貌似DrawImage即便是绘制图片的一部分和整幅图也没啥区别,不过即便如此的话,也要比创建一个新的Bitmap要好些呀。
Mittermeyer
2008-09-16
打赏
举报
回复
看你的需求知不是是要把Bitmap绘制一下而已,而不需要再内存中重建一个新的Bitmap呀。
绘图函数中可以绘制整个Bitmap,也可以只绘制一部分。
shanying_0
2008-09-16
打赏
举报
回复
鼠标每次移动。我都要处理的啊。只是每次都重新绘制小的部分。复制大的部分!!!!
现在的问题是如何最有效率的复制大的部分。
gdi+中有什么好方法?
或是gdi中。还有问一下。gdi中bltbit效率如何!!!
shanying_0
2008-09-16
打赏
举报
回复
我就是用Clone()复制了其中的一块。现在的问题是我的bitmap大小是1000*800
而我clone的大小大约是900*700。剩余的部分我要重画!!
为就是为了考虑效率才想复制很大一块不需要重新画的呢。要是全重画效率还蜗牛呢!!!!
现在的问题是这快不要重画的部分如何的处理
我是用的双缓冲的绘制。
cpio
2008-09-16
打赏
举报
回复
Bitmap (Image) 从指定的现有图像初始化 Bitmap 类的新实例。
看看这样行不行?它可以创建新实例
brallow
2008-09-16
打赏
举报
回复
这种问题需要考虑你的算法的本质。
你真的需要复制整块 Bitmap吗?
在Clone函数中可以只复制一个bitmap的一部分,为什么不尝试着优化你的算法,只复制bitmap的部分并修改这一部分来解决这个问题呢?
如果你要使用GDI进行这种类型的绘制,的确是会比较慢。这一点没办法解决。
非线性流量的数据驱动Koopman模型预测控制研究(Matlab代码实现)
内容概要:本文围绕“非线性流量的数据驱动Koopman模型预测控制研究”展开,提出一种基于数据驱动的Koopman算子理论方法,用于构建非线性系统的线性化状态空间模型,并结合模型预测控制(MPC)实现对复杂非线性系统的高效控制。研究通过引入扩展动态模态分解(EDMD)等观测函数,将非线性动力学映射至高维特征空间,在该空间中实现近似线性化表征,进而融合线性MPC框架进行优化求解。全文系统阐述了Koopman算子的数学基础、隐式线性化机制及在非线性流量控制中的建模流程,并通过Matlab代码完成了算法实现与仿真实验,验证了该方法在处理无精确物理模型、强非线性、时变动态系统中的有效性与鲁棒性,尤其适用于工业流程控制、能源系统调度等实际工程场景。; 适合人群:具备自动控制理论、非线性系统分析基础,熟悉Matlab编程,从事控制工程、系统辨识、智能优化、能源系统建模等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于难以建立精确数学模型的复杂非线性系统(如流体动力系统、电力电子系统、机器人动力学等)的建模与实时控制;②实现数据驱动下的模型预测控制,提升系统响应速度与控制精度;③为先进控制策略(如MPC)提供一种可行的线性化建模范式,推动现代控制理论与数据科学、机器学习的深度融合。; 阅读建议:建议读者结合提供的Matlab代码深入理解Koopman方法的具体实现过程,重点关注观测函数构造、核函数选择、矩阵逼近、降维处理及MPC控制器设计等关键技术环节,并尝试将其迁移至其他非线性系统中进行复现实验与性能对比,以全面掌握其适用范围与局限性。
光伏储能单相逆变器并网仿真模型(Simulink仿真实现)
内容概要:本文详细介绍了一种基于Simulink的光伏储能单相逆变器并网仿真模型,系统涵盖了光伏阵列、储能单元、DC-AC单相逆变器及并网接口的完整结构,重点实现了储能环节的能量管理与逆变器并网控制策略的建模仿真。通过Simulink平台构建系统模型,验证了逆变器输出电能质量、并网稳定性以及控制系统的动态响应性能,采用SPWM调制、PI闭环控制等关键技术,确保并网电流与电网电压同频同相,满足并网电能质量要求。该模型不仅可用于分布式能源系统的仿真研究,还可作为新能源并网技术的教学与工程实践工具。; 适合人群:电气工程、自动化、新能源科学与工程等相关专业的高校本科生、研究生、科研人员,以及从事光伏发电系统设计、储能控制与并网技术研发的工程技术人员。; 使用场景及目标:①深入理解光伏储能系统中能量转换、存储与并网控制的整体工作原理;②支持课程设计、毕业设计或科研项目中对单相逆变器控制策略(如SPWM、PI调节、锁相技术等)的仿真验证与参数优化;③为后续研究更复杂的控制算法(如MPPT、低电压穿越、谐波抑制等)提供可扩展的仿真基础平台。; 阅读建议:建议结合MATLAB/Simulink环境动手搭建与调试模型,逐步理解各模块(如光伏建模、储能充放电控制、逆变器驱动、锁相环、PI调节器等)的功能与交互关系,重点关注控制系统的设计逻辑与参数整定过程,并可通过修改负载条件或电网参数测试系统鲁棒性,为进一步拓展至三相系统或多机并网场景奠定基础。
java accesses https url to download files
代码转载自:https://pan.quark.cn/s/a4b39357ea24 Kubernetes Java Client bazel Client Capabilities Client Support Level Maven Central Sonatype Nexus (Snapshots) Java client for the kubernetes API. To start using Kubernetes Java Client See the wiki page and documentation here. Installation Client Versioning and Compatibility Code Examples Release Starting from (Kubernetes 1.28), has introduced non-backward-compatible changes. Optional parameters are now consolidated into a single object, and Java8 support has been removed. For Java8 users or those preferring the old SDK interface, a legacy SDK module version is available with a "-legacy" suffix, like . Development Development and Contributing Generate Java CRD Models Known Issues Troubleshoo...
立式液压驱动数控滚弯机机械系统设计.rar
立式液压驱动数控滚弯机机械系统设计.rar
易语言源码窗口置外形图片的应用-数码时钟
易语言源码窗口置外形图片的应用--数码时钟
C#
111,131
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章