嗨,我是在內存中從畫布使用PngBitmapEncoder創建圖像。RenderTargetBitmap是模糊的
public void CaptureGraphic()
{
Canvas canvas = new Canvas();
canvas.SnapsToDevicePixels = true;
canvas.Height = IMAGEHEIGHT;
canvas.Width = IMAGEWIDTH;
Draw(canvas);
canvas.Arrange(new Rect(0, 0, IMAGEWIDTH, IMAGEHEIGHT));
member.MemberImage = GetPngFromUIElement(canvas);
}
public static System.Drawing.Image GetPngFromUIElement(Canvas source)
{
int width = (int)source.ActualWidth;
int height = (int)source.ActualHeight;
if (width == 0)
width = (int)source.Width;
if (height == 0)
height = (int)source.Height;
RenderTargetBitmap bitmap = new RenderTargetBitmap(width, height, 96d, 96d, PixelFormats.Pbgra32);
bitmap.Render(source);
PngBitmapEncoder enc = new PngBitmapEncoder();
enc.Interlace = PngInterlaceOption.Off;
enc.Frames.Add(BitmapFrame.Create(bitmap));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
enc.Save(ms);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms);
ms.Flush();
ms.Dispose();
return image;
}
然後我發送圖像到打印機使用GDI + DrawImage()方法。但是打印結果模糊。
我試圖原始畫布大小匹配到印刷大小,以避免任何縮放,同樣我試圖使原來相當更大,所以縮放後的圖像保持了質量然而最終打印圖像總是模糊。
任何人都可以提出任何建議/替代品。我已經安裝了相當多的GDI +打印程序,並且轉移到wpf文件不是一種選擇。
謝謝
我想你可以通過添加更多標籤的問題幫助你的自我。 – radbyx