2014-10-06 45 views
0

我寫這篇文章的代碼繪製在RenderTargetBitmap文本:捕捉到像素RenderTargetBitmap

 DrawingVisual drawingVisual = new DrawingVisual(); 

     using (DrawingContext drawingContext = drawingVisual.RenderOpen()) 
     { 
      drawingContext.DrawText(new FormattedText("yes", CultureInfo.GetCultureInfo("en-us"), 
       FlowDirection.LeftToRight, new Typeface("Times New Roman"), 
       30, Brushes.Red), new Point(10, 10)); 
     } 

     RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32); 

     renderTargetBitmap.Render(drawingVisual); 

     image1.Source = renderTargetBitmap;//image1 is an Image control 

結果是:

enter image description here

我怎樣才能消除這種模糊的效果?這個效果來自RenderTargetBitmap而不是來自Image控件。

回答

0

你可以使用的DrawingImage代替RenderTargetBitmap

var drawingGroup = new DrawingGroup(); 
using (var drawingContext = drawingGroup.Open()) 
{ 
    drawingContext.DrawText(
     new FormattedText("yes", 
      CultureInfo.GetCultureInfo("en-us"), 
      FlowDirection.LeftToRight, 
      new Typeface("Times New Roman"), 
      30, 
      Brushes.Red), 
     new Point(10, 10)); 
} 
image1.Source = new DrawingImage(drawingGroup); 

你需要從那裏

+0

創建DrawingGroup和開放DrawingContext是的,這是真的。但我想使用renderTargetBitmap.CopyPixel方法。 – mohammad 2014-10-06 11:37:29

+0

然後嘗試將dpi從96更改爲600:'new RenderTargetBitmap(400,400,600,600,PixelFormats.Pbgra32);' – dkozl 2014-10-06 11:50:14