📄 form1.cs
字号:
//
this.label2.Location = new System.Drawing.Point(8, 8);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(72, 23);
this.label2.TabIndex = 10;
this.label2.Text = "弯曲模式:";
//
// trackBar2
//
this.trackBar2.Location = new System.Drawing.Point(0, 96);
this.trackBar2.Minimum = 1;
this.trackBar2.Name = "trackBar2";
this.trackBar2.Size = new System.Drawing.Size(112, 45);
this.trackBar2.TabIndex = 11;
this.trackBar2.Value = 1;
this.trackBar2.Scroll += new System.EventHandler(this.trackBar2_Scroll);
//
// label5
//
this.label5.Location = new System.Drawing.Point(8, 8);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(48, 32);
this.label5.TabIndex = 11;
this.label5.Text = "放大显示范围";
//
// label6
//
this.label6.Location = new System.Drawing.Point(160, 8);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(48, 32);
this.label6.TabIndex = 12;
this.label6.Text = "移动显示区域";
//
// panel3
//
this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel3.Controls.Add(this.label5);
this.panel3.Controls.Add(this.hScrollBar1);
this.panel3.Controls.Add(this.label6);
this.panel3.Controls.Add(this.hScrollBar2);
this.panel3.Location = new System.Drawing.Point(416, 48);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(304, 48);
this.panel3.TabIndex = 13;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(728, 545);
this.Controls.Add(this.panel3);
this.Controls.Add(this.panel2);
this.Controls.Add(this.button1);
this.Controls.Add(this.label1);
this.Controls.Add(this.panel1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.mm1);
this.Controls.Add(this.p1);
this.Controls.Add(this.toolBar1);
this.Menu = this.mainMenu1;
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Form1";
((System.ComponentModel.ISupportInitialize)(this.mm1)).EndInit();
this.panel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.trackBar1)).EndInit();
this.panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.trackBar2)).EndInit();
this.panel3.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void menuItem5_Click(object sender, System.EventArgs e)
{
mm1.Command="open";
mm1.Command="play";
}
private void menuItem2_Click(object sender, System.EventArgs e)
{
openFileDialog1.Filter = "wav Files (*.wav)|*.wav";
if(openFileDialog1.ShowDialog () == DialogResult.OK) // 显示对话框界面
FILE_NAME = openFileDialog1.FileName;
if (FILE_NAME == "") return;
fs = new FileStream(FILE_NAME,FileMode.Open,FileAccess.Read); //利用选择结果打开文件
r = new BinaryReader(fs);
head = new byte[44];
head = (byte[])r.ReadBytes(44);
channels = head[22]; // 声道数
frequence = head[24] + head[25]*256; // 采样频率
samplebits = head[34] + head[35]*256; // 样本记录位数
datlen = head[40] + head[41]*256;// 音频文件中全部样本数据字节数
textBox1.Text= channels.ToString()+ ", " + frequence.ToString() +", "+samplebits.ToString()+ ", "+datlen.ToString();
mm1.DeviceType="waveaudio";
mm1.FileName=FILE_NAME;
fs.Position = 44;
dlength =400;
if (samplebits == 8)
{
aa = new byte[dlength];
aa = (byte[])r.ReadBytes(dlength);
}
else
{
bb = new ushort[dlength];
for(int i=0; i<dlength; i++) bb[i]= r.ReadUInt16();
}
//*/
}
private void menuItem3_Click(object sender, System.EventArgs e)
{
fs.Close(); // fs是FileStream对象
r.Close(); // r是BinaryReader对象
}
double hs,vs;
int x1,y1,x2,y2;
private void pictureBox1_Click(object sender, System.EventArgs e)
{
}
int i;
private void menuItem6_Click(object sender, System.EventArgs e)
{
g=p1.CreateGraphics();
g.Clear(p1.BackColor);
pen = new Pen(Color.Red,1); //定义画图笔笔色和线宽
if (samplebits==8)
{
hs = Convert.ToDouble((p1.Width-10) /dlength);
vs = Convert.ToDouble((p1.Height-10) / 255.0);
x1 = 0;
y1 = Convert.ToUInt16(aa[0] * vs);
for (int i=1; i<dlength-1; i+=1)
{
x2 = Convert.ToUInt16( i * hs );
y2 = Convert.ToUInt16(aa[i]* vs);
g.DrawLine(pen,x1,y1,x2,y2); //画线
x1 = x2; y1 = y2;
}
}
else // samplebits==16
{
hs = Convert.ToDouble((p1.Width-10) / dlength);
vs = Convert.ToDouble((p1.Height-100) / 65535.0);
x1 = 0;
y1 = Convert.ToUInt16(bb[0] * vs);
for (i=1; i<dlength-1; i+=1)
{
x2 = Convert.ToUInt16( i * hs );
y2 = Convert.ToUInt16(bb[i]* vs);
g.DrawLine(pen,x1,y1,x2,y2); //画线
x1 = x2; y1 = y2;
}
}
}
private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if(e.Button.Text == "打开")
{
menuItem2_Click(sender,e);
}
if(e.Button.Text == "图画")
{
menuItem6_Click(sender,e);
}
if(e.Button.Text == "播放")
{
menuItem5_Click(sender,e);
}
if(e.Button.Text == "退出")
{
menuItem3_Click(sender,e);
}
}
private void hScrollBar1_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e)
{
dlength = hScrollBar1.Value;
fs.Position = 44 + hScrollBar2.Value;
if (samplebits == 8)
{
aa = new byte[dlength];
aa = (byte[])r.ReadBytes(dlength);
}
else
{
bb = new ushort[dlength];
for(int i=0; i<dlength; i++) bb[i]= r.ReadUInt16();
}
menuItem6_Click(sender,e);
}
long tlong;
private void hScrollBar2_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e)
{
fs.Position = 44 + hScrollBar2.Value;
if (samplebits == 8)
{
aa = new byte[dlength];
aa = (byte[])r.ReadBytes(dlength);
}
else
{
bb = new ushort[dlength];
for(int i=0; i<dlength; i++) bb[i]= r.ReadUInt16();
}
menuItem6_Click(sender,e);
}
private void menuItem9_Click(object sender, System.EventArgs e)
{
tlong = frequence/10;
dlength = dlength;
timer1.Enabled = true;
}
private void timer1_Tick(object sender, System.EventArgs e)
{
fs.Position = fs.Position + tlong;
if (samplebits == 8)
{
aa = new byte[dlength];
aa = (byte[])r.ReadBytes(dlength);
}
else
{
bb = new ushort[dlength];
for(int i=0; i<dlength; i++) bb[i]= r.ReadUInt16();
}
menuItem6_Click(sender,e);
}
int xleng;
int yleng;
private void menuItem10_Click(object sender, System.EventArgs e)
{
fs.Position = 5000;
g=p1.CreateGraphics();
g.Clear(p1.BackColor);
pen = new Pen(Color.Red,1); //定义画图笔笔色和线宽
if (samplebits==8)
{
hs = Convert.ToDouble((p1.Width-10) /dlength);
vs = Convert.ToDouble((p1.Height-10) / 255.0);
x1 = 0;
y1 = Convert.ToUInt16(aa[0] * vs);
for (int i=1; i<dlength-1; i+=1)
{
x2 = Convert.ToUInt16( i * hs );
y2 = Convert.ToUInt16(aa[i]* vs);
if(x2>x1) xleng = x2 -x1;
else xleng = x1 - x2;
if(y2>y1) yleng = y2 - y1;
else yleng = y1 - y2;
g.DrawRectangle(pen,x1,y1,(int)hs,yleng);
x1 = x2; y1 = y2;
}
}
else // samplebits==16
{
hs = Convert.ToDouble((p1.Width-10) / dlength);
vs = Convert.ToDouble((p1.Height-100) / 65535.0);
x1 = 0;
y1 = Convert.ToUInt16(bb[0] * vs);
for (i=1; i<dlength-1; i+=1)
{
if(x2>x1) xleng = x2 -x1;
else xleng = x1 - x2;
if(y2>y1) yleng = y2 - y1;
else yleng = y1 - y2;
g.DrawRectangle(pen,x1,y1,(int)hs,yleng);
x1 = x2; y1 = y2;
}
}
}
int xa=0,ya=0;
int xb=0,yb=0;
Graphics g1;
Point[] pt = new Point[3];
private void pictureBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
g1 = pictureBox1.CreateGraphics();
pen = new Pen(colorDialog1.Color,trackBar2.Value); //定义画图笔笔色和线宽
xb = e.X;
yb = e.Y;
pt[0] = new Point(xb,yb);
if((xa!=0)&&(ya!=0))
{
g1.DrawCurve(pen,pt,(float)trackBar1.Value);
// g1.DrawLine(pen,xa,ya,xb,yb);
}
xa = xb; ya = yb;
pt[2] = pt[1];
pt[1] = pt[0];
g1.Dispose();
}
private void button1_Click(object sender, System.EventArgs e)
{
pictureBox1.Image = null;
xa=0;ya=0;
xb=0;yb=0;
}
private void trackBar2_Scroll(object sender, System.EventArgs e)
{
label4.Text = ""+trackBar2.Value;
}
private void button2_Click(object sender, System.EventArgs e)
{
colorDialog1.ShowDialog();
}
Point[] pt2;
private void menuItem11_Click(object sender, System.EventArgs e)
{
/* g=p1.CreateGraphics();
g.Clear(p1.BackColor);
pen = new Pen(Color.Red,1); //定义画图笔笔色和线宽
pt2 = new Point[dlength];
if (samplebits==8)
{
hs = Convert.ToDouble((p1.Width-10) /dlength);
vs = Convert.ToDouble((p1.Height-10) / 255.0);
x1 = 0;
y1 = Convert.ToUInt16(aa[0] * vs);
g1 = pictureBox1.CreateGraphics();
pt2[0].X = pt2[1].Y = y1;
for (int i=1; i<dlength-1; i+=1)
{
y2 = Convert.ToUInt16(aa[i]* vs);
pt2[i].X = pt2[i].Y = y2;
}
g1.DrawCurve(pen,pt2,(float)trackBar1.Value);
}
else // samplebits==16
{
hs = Convert.ToDouble((p1.Width-10) / dlength);
vs = Convert.ToDouble((p1.Height-100) / 65535.0);
x1 = 0;
y1 = Convert.ToUInt16(bb[0] * vs);
g1 = pictureBox1.CreateGraphics();
pt2[0].X = pt2[1].Y = y1;
for (int i=1; i<dlength-1; i+=1)
{
y2 = Convert.ToUInt16(bb[i]* vs);
pt2[i].X = pt2[i].Y = y2;
}
g1.DrawCurve(pen,pt2,(float)trackBar1.Value);
}
*/
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -