📄 graphic.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 + -