コード例 #1
0
        private void OnCopyClick(object sender, RoutedEventArgs e)
        {
            double width  = this.AssociatedObject.ActualWidth;
            double height = this.AssociatedObject.ActualHeight;

            if (ImageWidth > 0)
            {
                width = ImageWidth;
            }
            if (ImageHeight > 0)
            {
                height = ImageHeight;
            }
            if (Scale > 0)
            {
                width  = width * Scale;
                height = height * Scale;
            }

            var pngExporter = new PngExporter
            {
                Width = (int)width, Height = (int)height, Background = OxyColors.White
            };

            Application.Current.Dispatcher.Invoke((Action)(() =>
            {
                var bitmap = pngExporter.ExportToBitmap(this.AssociatedObject.ActualModel);
                Clipboard.SetImage(bitmap);
            }));
        }
コード例 #2
0
        protected override bool OnDraw(SciterElement se, SciterXBehaviors.DRAW_PARAMS prms)
        {
            if (prms.cmd == SciterXBehaviors.DRAW_EVENTS.DRAW_CONTENT)
            {
                var pngExporter = new PngExporter()
                {
                    Width      = prms.area.Width,
                    Height     = prms.area.Height,
                    Background = OxyColors.Transparent
                };

                using (var ms = new MemoryStream())
                {
                    var bmp = pngExporter.ExportToBitmap(Host._model);

                    using (var img = new SciterImage(bmp))
                    {
                        new SciterGraphics(prms.gfx).BlendImage(img, prms.area.left, prms.area.top);
                    }
                }

                return(true);
            }
            return(false);
        }
コード例 #3
0
        /// <summary>
        /// The to clipboard.
        /// </summary>
        /// <param name="chart">
        /// The chart.
        /// </param>
        public static void ToClipboard(PlotModel chart)
        {
            var bitmap = PngExporter.ExportToBitmap(chart, (int)chart.Width, (int)chart.Height, OxyColor.FromArgb(255, 255, 255, 255));

            Clipboard.SetImage(bitmap);
            StatusBarContent.Instance.MessagesLabel = Labels.ChartExportedToClipboardMessage;
        }
コード例 #4
0
        /// <summary>
        /// 导出按钮监听
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_ExTWO_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = @"Excel|*.xls";
            sfd.ShowDialog();
            string    path        = sfd.FileName;
            PlotModel pm          = plotView1.Model;
            var       pngExporter = new PngExporter {
                Width = 1000, Height = 400, Background = OxyColors.White
            };
            Bitmap       bitmap = pngExporter.ExportToBitmap(pm);
            Image        image  = bitmap;
            MemoryStream ms     = new MemoryStream();

            image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
            byte[]    bytes    = ms.ToArray();
            IWorkbook workbook = new HSSFWorkbook();

            workbook.CreateSheet("sheet1");
            if (path != "")
            {
                using (FileStream fs = File.Create(path))
                {
                    ISheet           sheet  = workbook.GetSheetAt(0);
                    HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, 0, 5, 6, 10);
                    int      pic            = workbook.AddPicture(bytes, PictureType.PNG);
                    IDrawing patriarch      = sheet.CreateDrawingPatriarch();
                    IPicture ipic           = patriarch.CreatePicture(anchor, pic);
                    ipic.Resize();
                    workbook.Write(fs);
                }
                MessageBox.Show("保存成功!");
            }
        }
コード例 #5
0
        static void Main(string[] args)
        {
            var outputToFile          = "test-oxyplot-static-export-file.png";
            var outputExportStreamOOP = "test-oxyplot-ExportToStream.png";
            var outputExportFileOOP   = "test-oxyplot-ExportToFile.png";

            var width      = 1024;
            var height     = 768;
            var background = OxyColors.LightGray;
            var resolution = 96d;

            var model = BuildPlotModel();

            // export to file using static methods
            PngExporter.Export(model, outputToFile, width, height, resolution);

            // export using the instance methods
            using (var stream = new MemoryStream())
            {
                var pngExporter = new PngExporter {
                    Width = width, Height = height, Resolution = resolution
                };
                pngExporter.Export(model, stream);
                System.IO.File.WriteAllBytes(outputExportStreamOOP, stream.ToArray());
            }

            var pngExporter2 = new PngExporter {
                Width = width, Height = height, Resolution = resolution
            };
            var bitmap = pngExporter2.ExportToBitmap(model);

            bitmap.Save(outputExportFileOOP, System.Drawing.Imaging.ImageFormat.Png);
            bitmap.Save(Path.ChangeExtension(outputExportFileOOP, ".gif"), System.Drawing.Imaging.ImageFormat.Gif);
        }
コード例 #6
0
        public override void ExportToBitmap(bool betterHeights, string path)
        {
            SetViewLayer(0);
            if (betterHeights)
            {
                int max = 1;
                foreach (var line in PlotModel.Series)
                {
                    foreach (var point in ((LineSeries)line).Points)
                    {
                        if (point.Y > max)
                        {
                            max = (int)Math.Ceiling(point.Y);
                        }
                    }
                }

                PlotModel.Axes[1].MinimumRange = max;
            }

            PlotModel.Axes[0].Minimum = PlotModel.Series.Select(line => ((LineSeries)line).Points.Select(point => point.X)).Min().First();

            PngExporter exp = new PngExporter();

            exp.ExportToBitmap(PlotModel).Save(path);
        }
コード例 #7
0
ファイル: ImageUtility.cs プロジェクト: ylehilds/audiometry
        /// <summary>
        /// Exports the specified plot model to a bitmap.
        /// </summary>
        /// <param name="model">The plot model.</param>
        /// <param name="width">The width.</param>
        /// <param name="height">The height.</param>
        /// <param name="background">The background.</param>
        /// <param name="resolution">The resolution (dpi).</param>
        /// <returns>A bitmap.</returns>
        public static BitmapSource ExportToBitmap(PlotModel model, int width, int height, OxyColor background, int resolution = 96)
        {
            var exporter = new PngExporter {
                Width = width, Height = height, Background = background, Resolution = resolution
            };

            return(exporter.ExportToBitmap(model));
        }
コード例 #8
0
        internal Bitmap ExportBitmap()
        {
            var pngExporter = new PngExporter {
                Width = 600, Height = 400, Background = OxyColors.White
            };

            return(pngExporter.ExportToBitmap(MyModel));
        }
コード例 #9
0
        internal Bitmap ExportModelAsBitmap(PlotModel model)
        {
            var pngExporter = new PngExporter {
                Width = xSize, Height = ySize, Background = OxyColors.White
            };
            Bitmap graph = pngExporter.ExportToBitmap(model);

            return(graph);
        }
コード例 #10
0
        private void menuCopyClipboard_Click(object sender, RoutedEventArgs e)
        {
            var pngExporter = new PngExporter {
                Width = 600, Height = 400, Background = OxyColors.White
            };
            var bitmap = pngExporter.ExportToBitmap(PlotView.Model);

            Clipboard.SetImage(bitmap);
        }
コード例 #11
0
ファイル: NetworkStatsWindow.xaml.cs プロジェクト: 210183/IAD
        private void ScreenShotbutton_Click(object sender, RoutedEventArgs e)
        {
            var pngExporter = new PngExporter {
                Width = 600, Height = 400, Background = OxyColors.White
            };
            var bitmap = pngExporter.ExportToBitmap(PlotModels[0]);

            Clipboard.SetImage(bitmap);
        }
コード例 #12
0
        public void CopyGraph(int width, int height)
        {
            Backup();
            Bitmap bmp = PngExporter.ExportToBitmap(plot.Model, width, height, Brushes.White);

            Clipboard.SetImage(bmp);
            bmp.Dispose();
            Restore();
        }
コード例 #13
0
        protected override void RenderToCanvas(Canvas canvas)
        {
            var width  = (Int32)canvas.Width;
            var height = (Int32)canvas.Height;
            var bmp    = PngExporter.ExportToBitmap(Plotter.Model, width, height, OxyColors.Transparent);

            canvas.Children.Add(new Image {
                Source = bmp
            });
        }
コード例 #14
0
 IEnumerable <BitmapSource> GetFrames(int fromInd, int toInd, int step)
 {
     for (int i = fromInd; i <= toInd; i += step)
     {
         slider.Value = i;
         DoEvents();
         var pngExporter = new PngExporter();
         yield return(pngExporter.ExportToBitmap(vm.PM));
     }
 }
コード例 #15
0
        internal Bitmap ExportBitmap()
        {
            var pngExporter = new PngExporter
            {
                Width      = Settings.Sizes.Width,
                Height     = Settings.Sizes.Height,
                Background = OxyColor.FromArgb(Settings.GraphColor.A, Settings.GraphColor.R, Settings.GraphColor.G, Settings.GraphColor.B)
            };

            return(pngExporter.ExportToBitmap(MyModel));
        }
コード例 #16
0
        /// <summary>
        ///     Converts the plot model into an SVG string.
        /// </summary>
        /// <param name="model"></param>
        /// <param name="size"></param>
        /// <returns></returns>
        public BitmapSource CreateImage(PlotModel model, Size size)
        {
            var pngExporter = new PngExporter
            {
                Width      = (int)size.Width,
                Height     = (int)size.Height,
                Resolution = 120
            };

            return(pngExporter.ExportToBitmap(model));
        }
コード例 #17
0
        private BitmapSource ExportToBitmap(IPlotModel plotModel, int height, int width, OxyColor background, double resolution = 96)
        {
            var exporter = new PngExporter()
            {
                Height     = height,
                Width      = width,
                Background = background,
                Resolution = resolution,
            };

            return(exporter.ExportToBitmap(plotModel));
        }
コード例 #18
0
        private BitmapSource ExportToBitMap(IPlotModel plot, int width, int height, OxyColor background, int resolution)
        {
            var exporter = new PngExporter
            {
                Width      = width,
                Height     = height,
                Background = background,
                Resolution = resolution
            };

            return(exporter.ExportToBitmap(plot));
        }
コード例 #19
0
        /// <summary>
        ///     Converts the plot model into a BitmapSource with the given size and resolution.
        /// </summary>
        /// <param name="model"></param>
        /// <param name="size"></param>
        /// <param name="resolution"></param>
        /// <returns></returns>
        public BitmapSource CreateImageHighRes(PlotModel model, Size size, double resolution)
        {
            var multiplier  = (resolution / 96.0);
            var width       = Math.Ceiling(size.Width * multiplier);
            var height      = Math.Ceiling(size.Height * multiplier);
            var pngExporter = new PngExporter
            {
                Width      = (int)width,
                Height     = (int)height,
                Resolution = (int)resolution
            };

            return(pngExporter.ExportToBitmap(model));
        }
コード例 #20
0
        internal Bitmap ExportBitmap()
        {
            var pngExporter = new PngExporter
            {
                Width      = GraphWidth,
                Height     = GraphHeight,
                Background = OxyColor.FromArgb(
                    BackgroundColor.A,
                    BackgroundColor.R,
                    BackgroundColor.G,
                    BackgroundColor.B)
            };

            return(pngExporter.ExportToBitmap(MyModel));
        }
コード例 #21
0
ファイル: Form1.cs プロジェクト: Kidel/Plotter
        private void copyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.plot1.Model == null)
            {
                output("Errore: non posso copiare un grafico vuoto");
                return;
            }
            var pngExporter = new PngExporter {
                Width = this.plot1.Width, Height = this.plot1.Height, Background = OxyColors.White
            };
            var bitmap = pngExporter.ExportToBitmap(this.plot1.Model);

            Clipboard.SetImage(bitmap);
            output("Successo: grafo copiato correttamente. Incollalo in un'applicazione supportata (Word, Paint, ecc)");
        }
コード例 #22
0
ファイル: PlotHelper.cs プロジェクト: weblate/Kinovea
        public void CopyGraph(int width, int height)
        {
            Backup();
            PngExporter pngExporter = new PngExporter();

            pngExporter.Width      = width;
            pngExporter.Height     = height;
            pngExporter.Resolution = 72;
            pngExporter.Background = OxyPlot.OxyColors.White;
            Bitmap bmp = pngExporter.ExportToBitmap(plot.Model);

            Clipboard.SetImage(bmp);
            bmp.Dispose();
            Restore();
        }
コード例 #23
0
        /// <summary>
        /// The to file.
        /// </summary>
        /// <param name="chart">
        /// The chart.
        /// </param>
        public static void ToFile(PlotModel chart)
        {
            var sfd = new SaveFileDialog();

            sfd.CheckFileExists  = false;
            sfd.CheckPathExists  = true;
            sfd.DefaultExt       = ".png";
            sfd.AddExtension     = true;
            sfd.Filter           = Labels.GraphicFilesFilter;
            sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            sfd.Title            = Labels.GraphicFilesSaveFileDialogTitle;
            if (sfd.ShowDialog().GetValueOrDefault())
            {
                using (var stream = new FileStream(sfd.FileName, FileMode.Create))
                {
                    BitmapEncoder encoder   = null;
                    string        extension = Path.GetExtension(sfd.FileName);
                    var           enc       = new ASCIIEncoding();
                    if (extension != null)
                    {
                        switch (extension.ToLower())
                        {
                        case ".bmp":
                            encoder = new BmpBitmapEncoder();
                            break;

                        case ".png":
                            encoder = new PngBitmapEncoder();
                            break;

                        case ".gif":
                            encoder = new GifBitmapEncoder();
                            break;

                        case ".tif":
                            encoder = new TiffBitmapEncoder();
                            break;

                        case ".wmp":
                            encoder = new WmpBitmapEncoder();
                            break;

                        case ".svg":
                            var rc  = new ShapesRenderContext(null);
                            var svg = OxyPlot.SvgExporter.ExportToString(chart, chart.Width, chart.Height, true, rc);
                            stream.Write(enc.GetBytes(svg), 0, svg.Length);
                            return;

                        case ".xaml":
                            var xaml = XamlExporter.ExportToString(chart, chart.Width, chart.Height, OxyColor.FromArgb(255, 255, 255, 255));
                            stream.Write(enc.GetBytes(xaml), 0, xaml.Length);
                            return;

                        case ".jpg":
                        default:
                            encoder = new JpegBitmapEncoder();
                            break;
                        }
                    }

                    var bitmap = PngExporter.ExportToBitmap(chart, (int)chart.Width, (int)chart.Height, OxyColor.FromArgb(255, 255, 255, 255));

                    // Save to file
                    if (encoder != null)
                    {
                        encoder.Frames.Add(BitmapFrame.Create(bitmap));
                        encoder.Save(stream);
                    }
                }
            }
        }
コード例 #24
0
        public PlotHandler()
        {
            var pview = new global::OxyPlot.WindowsForms.PlotView();

            Control = pview;

            ContextMenu cmenu = new ContextMenu();

            cmenu.Items.Add(new ButtonMenuItem((sender, e) =>
            {
                var pngExporter = new PngExporter {
                    Width = pview.Width, Height = pview.Height, Background = OxyColors.White
                };
                var bitmap = pngExporter.ExportToBitmap(pview.Model);
                System.Windows.Forms.Clipboard.SetImage(bitmap);
            })
            {
                Text = "Copy"
            });

            cmenu.Items.Add(new ButtonMenuItem((sender, e) =>
            {
                var pngExporter = new PngExporter {
                    Width = pview.Width * 2, Height = pview.Height * 2, Background = OxyColors.White
                };
                var bitmap = pngExporter.ExportToBitmap(pview.Model);
                System.Windows.Forms.Clipboard.SetImage(bitmap);
            })
            {
                Text = "Copy @ 2x"
            });

            cmenu.Items.Add(new ButtonMenuItem((sender, e) =>
            {
                var pngExporter = new PngExporter {
                    Width = pview.Width * 3, Height = pview.Height * 3, Background = OxyColors.White
                };
                var bitmap = pngExporter.ExportToBitmap(pview.Model);
                System.Windows.Forms.Clipboard.SetImage(bitmap);
            })
            {
                Text = "Copy @ 3x"
            });

            cmenu.Items.Add(new ButtonMenuItem((sender, e) =>
            {
                var sfd = new SaveFileDialog();

                sfd.Title = "Save Chart to PNG";
                sfd.Filters.Add(new FileFilter("PNG File", new string[] { ".png" }));
                sfd.CurrentFilterIndex = 0;

                if (sfd.ShowDialog(this.Widget) == DialogResult.Ok)
                {
                    var pngExporter = new PngExporter {
                        Width = pview.Width, Height = pview.Height, Background = OxyColors.White
                    };
                    pngExporter.ExportToFile(Model, sfd.FileName);
                }
            })
            {
                Text = "Save to File"
            });

            cmenu.Items.Add(new ButtonMenuItem((sender, e) =>
            {
                var sfd = new SaveFileDialog();

                sfd.Title = "Save Chart to PNG";
                sfd.Filters.Add(new FileFilter("PNG File", new string[] { ".png" }));
                sfd.CurrentFilterIndex = 0;

                if (sfd.ShowDialog(this.Widget) == DialogResult.Ok)
                {
                    var pngExporter = new PngExporter {
                        Width = pview.Width * 2, Height = pview.Height * 2, Background = OxyColors.White
                    };
                    pngExporter.ExportToFile(Model, sfd.FileName);
                }
            })
            {
                Text = "Save to File @ 2x"
            });

            cmenu.Items.Add(new ButtonMenuItem((sender, e) =>
            {
                var sfd = new SaveFileDialog();

                sfd.Title = "Save Chart to PNG";
                sfd.Filters.Add(new FileFilter("PNG File", new string[] { ".png" }));
                sfd.CurrentFilterIndex = 0;

                if (sfd.ShowDialog(this.Widget) == DialogResult.Ok)
                {
                    var pngExporter = new PngExporter {
                        Width = pview.Width * 3, Height = pview.Height * 3, Background = OxyColors.White
                    };
                    pngExporter.ExportToFile(Model, sfd.FileName);
                }
            })
            {
                Text = "Save to File @ 3x"
            });

            cmenu.Items.Add(new ButtonMenuItem((sender, e) =>
            {
                pview.Model.ResetAllAxes();
                pview.Model.InvalidatePlot(false);
            })
            {
                Text = "Reset to Default View"
            });

            this.ContextMenu = cmenu;
        }