當我拍攝當前WPF窗口的截圖時,圖像分辨率是我的顯示器的圖像分辨率(如果應用程序已最大化),這沒關係。但是,如果我要將該圖像打印成更大的圖像,則圖像看起來很模糊。我找到了捕獲當前窗口的方法,並將它保存爲一個PNG文件,但它並沒有做到這一點。圖像以我設置的分辨率保存,但實際的wpf窗口只佔保存圖像的一小部分。例如摘自:在不丟失質量的情況下拍攝具有預定義圖片大小的WPF窗口的截圖
var screen = System.Windows.Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive);
var rtb = new RenderTargetBitmap(4000, 4000, 96, 96, PixelFormats.Pbgra32);
rtb.Render(screen);
var enc = new System.Windows.Media.Imaging.PngBitmapEncoder();
enc.Frames.Add(System.Windows.Media.Imaging.BitmapFrame.Create(rtb));
using (var stm = System.IO.File.Create("ScreenShot.png"))
{
enc.Save(stm);
using (Image img = Image.FromStream(stm))
{
Rectangle dest = new Rectangle(0, 0, 6000, 4000);
using (Graphics imgG = Graphics.FromImage(img))
{
imgG.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
imgG.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
imgG.DrawImage(img, dest);
}
img.Save("NewScreenShot.png");
}
}
所以基本上,我想捕捉的4000 X 4000分辨率的截圖,如果可能的話,不失質量。 上面的代碼產生4000 x 4000的圖像,但截圖僅佔其原始分辨率的一小部分。
所以,你有一個小窗口,說400×400,並希望將其擴展到4000x4000?如果可能的話,可以使用 – Default
。將其縮小一點,然後用更多分辨率保存WPF窗口的圖像 – Mefhisto1
可以將圖像添加到帖子中嗎? – aloisdg