У меня есть предварительный просмотр печати, который отображает захваченную панель в форме 'Panel1.DrawToBitmap (memoryImage, bounds);'
Я также сохраняю изображение на своем жестком диске - 'memoryImage.Save ("diary.png") "
Изображение в режиме предварительного просмотра при любом уровне масштабирования размыто, сохраненное изображение идеально (при просмотре в программе просмотра фотографий Windows и PS).
Мне бы хотелось, чтобы предварительный просмотр был таким же хорошим, как и сохраненное изображение, есть идеи?
вот код: -
private void CaptureScreen()
{
int x = splitContainerDiary.Location.X;
int y = splitContainerDiary.Location.Y;
int SCwidth = splitContainerDiary.Panel1.Width;
int SCheight = splitContainerDiary.Panel1.Height;
Rectangle bounds = new Rectangle(x, y, SCwidth, SCheight);
memoryImage = new Bitmap(SCwidth, SCheight, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
splitContainerDiary.Panel1.DrawToBitmap(memoryImage, bounds);
memoryImage.Save("diary.png");
}
private void printDocumentDiary_PrintPage(object sender, PrintPageEventArgs e)
{
CaptureScreen();
Font HeaderFont = new Font("Consolas", 16, FontStyle.Bold);
e.Graphics.DrawString(selectedYear.ToString() + " - " + name, HeaderFont, Brushes.Black, 15, 15);
e.Graphics.DrawImage(Image.FromFile("diary.png"), 5, 5);
// e.Graphics.DrawImage(memoryImage, 0, 40);
PrintDoodle(e);
}
Я попытался нарисовать изображение из памяти (e.Graphics.DrawImage (memoryImage, 0, 40), а также из сохраненного изображения 'e.Graphics.DrawImage (Image.FromFile ("diary.png"), 5 , 5); 'Они оба размыты в предварительном просмотре.
Я тоже пробовал разные форматы пикселей, без радости.
Я попытался сохранить изображение в формате BMP, JPG, PNG, но без радости (при рисовании изображения из файла).
Я пытался использовать процедуру BitBlt также с теми же результатами.
Tino