1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System.IO;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- namespace DrawGraph
- {
- class Export
- {
- public static void ToPng(Canvas canvas, string path)
- {
- RenderTargetBitmap renderBitmap = new RenderTargetBitmap(
- (int)canvas.Width, (int)canvas.Height,
- 96d, 96d, PixelFormats.Pbgra32);
- canvas.Measure(new Size((int)canvas.Width, (int)canvas.Height));
- canvas.Arrange(new Rect(new Size((int)canvas.Width, (int)canvas.Height)));
- renderBitmap.Render(canvas);
- //JpegBitmapEncoder encoder = new JpegBitmapEncoder();
- PngBitmapEncoder encoder = new PngBitmapEncoder();
- encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
- using (FileStream fs = new FileStream(path, FileMode.Create))
- {
- encoder.Save(fs);
- }
- }
- public static void ToJpeg(Canvas canvas, string path)
- {
- RenderTargetBitmap renderBitmap = new RenderTargetBitmap(
- (int)canvas.Width, (int)canvas.Height,
- 96d, 96d, PixelFormats.Pbgra32);
- canvas.Measure(new Size((int)canvas.Width, (int)canvas.Height));
- canvas.Arrange(new Rect(new Size((int)canvas.Width, (int)canvas.Height)));
- renderBitmap.Render(canvas);
- JpegBitmapEncoder encoder = new JpegBitmapEncoder();
- encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
- using (FileStream fs = new FileStream(path, FileMode.Create))
- {
- encoder.Save(fs);
- }
- }
- public static void Print(Canvas canvas)
- {
- PrintDialog pd = new PrintDialog();
- if (pd.ShowDialog() == true)
- {
- pd.PrintVisual(canvas, "Printed with DrawGraph");
- }
- }
- }
- }
|