Kha*_*zor 5 c# wpf image-processing
我需要在一个Image上执行多个操作,例如,我需要调整图像的大小,也许填充它以保持纵横比(并绘制背景颜色),并有条件地用水印标记.
我目前正在使用BitmapFrame我在所涉及的方法之间传递的类型.
任何人都可以推荐另一种我应该用于对图像执行增量更新的类型吗?
我可以创建各种图像的组合,虽然我不确定我应该使用哪种类型的图像?
WriteableBitmap适用于想要对图像进行增量更新的情况.无论BitmapFrame和WriteableBitmap继承BitmapSource,并WriteableBitmap可以使用任何被实例化BitmapSource.
您可能还想查看WriteableBitmapEx库,该库WriteableBitmap为位图操作提供了大量有效的扩展方法.该库适用于WPF应用程序以及Silverlight,WP7和Metro.
尝试 WriteableBitmap
http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap.aspx
使用WriteableBitmap类以每帧为基础更新和呈现位图.这对于生成算法内容(例如分形图像)和数据可视化(例如音乐可视化器)非常有用.
要更好地控制更新,以及对后台缓冲区进行多线程访问,请使用以下工作流程.
1.调用Lock方法以保留后台缓冲区以进行更新.
2.通过访问BackBuffer属性获取指向后台缓冲区的指针.
3.将更改写入后台缓冲区.当WriteableBitmap被锁定时,其他线程可能会对后缓冲区写入更改.
4.调用AddDirtyRect方法以指示已更改的区域.
5.调用Unlock方法释放后缓冲区并允许显示到屏幕.
当更新发送到呈现线程时,呈现线程将更改的矩形从后缓冲区复制到前台缓冲区.渲染系统控制此交换以避免死锁和重绘伪像,例如"撕裂".
| 归档时间: |
|
| 查看次数: |
1028 次 |
| 最近记录: |