【问题标题】:Drawing line using WPF WriteableBitmap.BackBuffer使用 WPF WriteableBitmap.BackBuffer 绘制线条
【发布时间】:2010-06-08 19:31:04
【问题描述】:

您知道任何提供使用 WPF WriteableBitmap 和理想的 BackBuffer 绘制简单形状(线条和可选的其他形状)的方法的库吗? 我知道 Silverlight 有一个 WriteableBitmapEx 项目,但有 WPF 等价物吗?

【问题讨论】:

标签: wpf writeablebitmap


【解决方案1】:

我想这就是我的问题的答案:)

_plotBitmap.Lock();

var b = new Bitmap(_plotBitmap.PixelWidth,
                   _plotBitmap.PixelHeight,
                   _plotBitmap.BackBufferStride,
                   System.Drawing.Imaging.PixelFormat.Format24bppRgb, 
                   _plotBitmap.BackBuffer);

using(var bitmapGraphics = System.Drawing.Graphics.FromImage(b))
{
    bitmapGraphics.SmoothingMode = SmoothingMode.HighSpeed;
    bitmapGraphics.InterpolationMode = InterpolationMode.NearestNeighbor;
    bitmapGraphics.CompositingMode = CompositingMode.SourceCopy;
    bitmapGraphics.CompositingQuality = CompositingQuality.HighSpeed;
    bitmapGraphics.DrawLine(Pens.Gold,2,2,222,222);
}

_plotBitmap.AddDirtyRect(new Int32Rect(0,0,_plotBitmap.PixelWidth,_plotBitmap.PixelHeight));
_plotBitmap.Unlock();

【讨论】:

  • 您不需要显式 Dispose() 位图。这就是 using 的目的。
【解决方案2】:

您似乎在使用 Bitmap,但正在寻求使用 WriteableBitmap 的解决方案。 WPF 有一个 WriteableBitmapEx。

【讨论】:

  • WriteableBitmapEx 没有最佳性能,无法绘制文本;如果你需要的话,它有更好的抗锯齿系统。
猜你喜欢
  • 2014-03-16
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多