⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graphic.cs

📁 编辑点属性,地理信息系统开发学习使用, 学习
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace photo
{
    public partial class graphic : Form
    {
        Form1 form;
        float[] scales;
        public graphic()
        {
            InitializeComponent();
        }
        public graphic(Form1 pform)
        {
            scales = new float[256];
            form = pform;
            InitializeComponent();
        }

        private void graphic_Paint(object sender, PaintEventArgs e)
        {

 
            Graphics g = e.Graphics;
            PointF cPt = new PointF(10, 250);//中心点    
            PointF[] xPt = new PointF[3]{
             new   PointF(cPt.Y+45,cPt.Y),
             new   PointF(cPt.Y+30,cPt.Y-8),
             new   PointF(cPt.Y+30,cPt.Y+8)};//X轴三角形    
            PointF[] yPt = new PointF[3]{
             new   PointF(cPt.X,cPt.X-15),
             new   PointF(cPt.X+8,cPt.X),
             new   PointF(cPt.X-8,cPt.X)};//Y轴三角形  

            //画X轴    
            g.DrawLine(Pens.Black, cPt.X, cPt.Y, cPt.Y + 30, cPt.Y);
            g.DrawPolygon(Pens.Black, xPt);
            g.FillPolygon(new SolidBrush(Color.Black), xPt);
            g.DrawString("灰度", new Font("宋体", 8), Brushes.Black, new PointF(cPt.Y + 12, cPt.Y - 20));
            //画Y轴    
            g.DrawLine(Pens.Black, cPt.X, cPt.Y, cPt.X, cPt.X);
            g.DrawPolygon(Pens.Black, yPt);
            g.FillPolygon(new SolidBrush(Color.Black), yPt);
            //  g.DrawString("频率(%)", new Font("宋体", 8), Brushes.Black, new PointF(25, 0));

            for (int i = 10; i <= 280; )
            {
                //画X轴刻度    

                g.DrawString((i - 10).ToString(), new Font("宋体", 8), Brushes.Black, new PointF(cPt.X + i, cPt.Y + 1));
                g.DrawLine(Pens.Black, cPt.X + i, cPt.Y - 3, cPt.X + i, cPt.Y + 3);
                i = i + 50;
            }
            for (int j = 240; j >= 40; )
            {//画Y轴刻度 
                for (int k = 0; k < 10; )
                {

                    g.DrawLine(Pens.Black, cPt.X - 3, (cPt.Y - j) * 100, cPt.X, (cPt.Y - j) * 100);
                    k = k + 1;
                }
                j = j - 20;
            }
            //画灰度图

            for (int m = 0; m <= 255; m++)

            { g.DrawLine(Pens.Blue, cPt.X + 10 + m, cPt.Y, cPt.X + 10 + m, 250 - scales[m] / 10); }



        }

        private void graphic_Load(object sender, EventArgs e)
        {
            Bitmap bitmap = new Bitmap(form.PictureBox.Image);
            int all = bitmap.Height * bitmap.Width;
            for (int y = 0; y < bitmap.Height; y++)
                for (int x = 0; x < bitmap.Width; x++)
                {
                    Color c = bitmap.GetPixel(x, y);
                    int grayscales = (c.R + c.G + c.B) / 3;
                    scales[grayscales]++;

                }
        }

      


    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -