C# 捕捉到RenderTargetBitmap中的像素
我编写以下代码是为了在RenderTargetBitmap中绘制文本:C# 捕捉到RenderTargetBitmap中的像素,c#,wpf,C#,Wpf,我编写以下代码是为了在RenderTargetBitmap中绘制文本: DrawingVisual drawingVisual = new DrawingVisual(); using (DrawingContext drawingContext = drawingVisual.RenderOpen()) { drawingContext.DrawText(new FormattedText("yes", CultureI
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
结果是:
如何消除这种模糊效果?此效果来自RenderTargetBitmap,而不是图像控件。您可以使用它代替RenderTargetBitmap
您需要创建DrawingGroup并从中打开DrawingContext是的,这是正确的。但是我想使用renderTargetBitmap.CopyPixel方法。然后尝试将dpi从96更改为600:new RenderTargetBitMap400400600600,PixelFormats.Pbgra32;
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);