1

我的问题是 Int32Rect 点与我画布中的点不同。我尝试按照建议使用 dpi 作为其他问题的解决方案,但我不知道如何使用它。

private void bttnExportFB_Click(object sender, RoutedEventArgs e)
    {
        RenderTargetBitmap rtb = new RenderTargetBitmap((int)mainCanvas.ActualWidth,
        (int)mainCanvas.ActualHeight, 96d, 96d, System.Windows.Media.PixelFormats.Default);
        rtb.Render(mainCanvas);

        CroppedBitmap crop = new CroppedBitmap(rtb, new Int32Rect((int)(173 ), (int)(360), (int)(353 ), (int)(540 )));

        BitmapEncoder pngEncoder = new PngBitmapEncoder();
        pngEncoder.Frames.Add(BitmapFrame.Create(crop));

        using (var fs = System.IO.File.OpenWrite("logo.bmp"))
        {
            pngEncoder.Save(fs);
        }

    }

-update- 在画布上,由 inteRect32 的位置创建的矩形在 rtb 处具有不同的区域。

4

0 回答 0