コード例 #1
0
        private Image CreateChartsImage(bool filled = false)
        {
            int dy = 10;
            int dx = 10;
            int w  = 500;
            int h  = 200;

            int    mw  = w + 2 * dx;
            int    mh  = h * charts.Count + dy * (charts.Count + 1);
            Bitmap bmp = new Bitmap(mw, mh);

            if (filled)
            {
                Dictionary <Chart, RectangleF> dicArea = new Dictionary <Chart, RectangleF>();
                Dictionary <Chart, Bitmap>     dic     = man.SaveImageOfChart(new Size(w, h), dicArea);

                Brush br = new SolidBrush(Color.FromArgb(32, Color.Green));

                int y   = dy;
                int x   = dx;
                int cnt = 0;
                using (Graphics gr = Graphics.FromImage(bmp))
                {
                    foreach (Chart chart in dic.Keys)
                    {
                        Bitmap     bmpChart = dic[chart];
                        RectangleF rc       = dicArea[chart];

                        rc.Offset(dx, dy + cnt * (h + dy));

                        gr.DrawImage(bmpChart, x, y);
                        gr.FillRectangle(br, rc.X, rc.Y, rc.Width, rc.Height);
                        y += h;
                        y += dy;
                        cnt++;
                    }
                }

                br.Dispose();
            }
            else
            {
                Dictionary <Chart, Bitmap> dic = man.SaveImageOfChart(new Size(w, h));

                int y = dy;
                int x = dx;
                using (Graphics gr = Graphics.FromImage(bmp))
                {
                    foreach (Bitmap bmpChart in dic.Values)
                    {
                        gr.DrawImage(bmpChart, x, y);
                        y += h;
                        y += dy;
                    }
                }
            }

            return(bmp);
        }