Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 捕捉到RenderTargetBitmap中的像素_C#_Wpf - Fatal编程技术网

C# 捕捉到RenderTargetBitmap中的像素

C# 捕捉到RenderTargetBitmap中的像素,c#,wpf,C#,Wpf,我编写以下代码是为了在RenderTargetBitmap中绘制文本: DrawingVisual drawingVisual = new DrawingVisual(); using (DrawingContext drawingContext = drawingVisual.RenderOpen()) { drawingContext.DrawText(new FormattedText("yes", CultureI

我编写以下代码是为了在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
结果是:

如何消除这种模糊效果?此效果来自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);