1

グラフをハードディスクに保存するときのファイル サイズは次のとおりです。PDFで手動でストレッチすると、解像度が失われ、見た目が悪く、グラフ上で何も読み取れません。

どういうわけかグラフの解像度、つまり品質とシャープネスを維持したいのですが、サイズを1920x1080のように大きくします。

これは使用しているコードです:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ZedGraph;
using Extracting_Frames;

namespace Lightnings_Extractor
{
    public partial class RGB_Form : Form
    {
        int framesLength;

        public RGB_Form()
        {
            InitializeComponent();

            this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
            zedGraphControl1.ClientSize = this.Size;
            framesLength = Form1.list_of_histogramsR.Count;
        }

        public RGB_Form(List<long[]> Histograms)
        {
            InitializeComponent();

            this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
            zedGraphControl1.ClientSize = this.Size;
            framesLength = Histograms.Count;
            CreateGraph_GradientByZBars(zedGraphControl1, Histograms);
        }

        private void CreateGraph_GradientByZBars(ZedGraphControl z1, List<long[]> HistoGramList)
        {
            GraphPane myPane = z1.GraphPane;
            if (myPane != null)
            {
                myPane.CurveList.Clear();
                myPane.GraphObjList.Clear();
                myPane.Title.Text = "Simple Moving Average By :  " + Form1.percentage + "%";
                myPane.XAxis.Title.Text = "Frame Number";
                myPane.YAxis.Title.Text = "Value";


                myPane.XAxis.Scale.MaxAuto = false;
                myPane.XAxis.Scale.MinAuto = false;
                myPane.YAxis.Scale.MaxAuto = false;
                myPane.YAxis.Scale.MinAuto = false;

                myPane.XAxis.Scale.Min = 0;
                myPane.XAxis.Scale.Max = 255; //framesLength;
                myPane.YAxis.Scale.Min = 0;
                myPane.YAxis.Scale.Max = framesLength;// 255;

                PointPairList R = new PointPairList();
                PointPairList G = new PointPairList();
                PointPairList B = new PointPairList();

                for (int i = 0; i <  HistoGramList.Count; i++)
                {
                    if (i == 3154)
                    {
                        double z = 0;
                        double yy = 0;
                        long[] g = HistoGramList[i];
                            for (int f = 0; f < g.Length; f++)
                            {
                                double x = f;
                                yy = g[f];
                                R.Add(x, yy, z);
                            }
                    }
                }

                LineItem myCurveRed = myPane.AddCurve("Original Signal",
                   R, Color.Red, SymbolType.None);
                z1.Size = new System.Drawing.Size(1920, 1080);
                z1.AxisChange();
                z1.SaveAs(@"ZedRgb.bmp");
            }
        }
    }
}

私が追加したコードの終わり近く:

z1.Size = new System.Drawing.Size(1920, 1080);

しかし、ハードディスク上のファイルのサイズはまだ何も変わっていません: 284x262

1920x1080 で品質を落とさずにグラフのサイズを変更してハードディスクに保存するにはどうすればよいですか? 私のプログラムでグラフを使用すると、全画面表示になり、グラフは大きな全画面表示になりますが、ハードディスクに保存すると非常に小さくなります。

編集: zedgraph コントロールを追加したフォームでは、フォームのサイズは 300x300 ですが、zedgraph コントロールのサイズは 284x262 であり、全画面表示にするために、ZedGraph コントロールの Dock プロパティを Fill に変更しました。

したがって、ZedGraph コントロールのデザイナのサイズは実際には 284x262 です。デザイナのサイズを変更せずに 1920x1080 としてハードディスクに保存したい場合、ランタイム コードで変更するにはどうすればよいですか?

4

2 に答える 2

0

ZedGraph コントロールを Dock Fill から Dock None に変更しました

ありがとう。

于 2012-12-19T08:57:17.693 に答える
0

ライン交換をお勧めします

z1.Size = 新しい System.Drawing.Size(1920, 1080);

this.size = new Size(1920,1080);

それが機能するかどうか知りたいです。そうでない場合、別の可能な解決策は
、行を追加することです

this.size = new Size(1920,1080);

行の前に

zedGraphControl1.ClientSize = this.Size;

于 2013-09-20T15:37:01.727 に答える