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

📄 winmain.menu.cs

📁 一个C#开发的类似PHOTOSHOP的软件,用到了很多图形算法.
💻 CS
📖 第 1 页 / 共 4 页
字号:
        return;

      AlgebraOperate(Algebra.AlgebraMethod.Maximize);
    }

    private void algebraMinimumToolStripMenuItem_Click(object sender, EventArgs e)
    {
      if (!this.layer.Visible)
        return;

      AlgebraOperate(Algebra.AlgebraMethod.Minimum);
    }

    private void logicAndToolStripMenuItem_Click(object sender, EventArgs e)
    {
      if (!this.layer.Visible)
        return;

      LogicOperate(Logic.LogicMethod.And);
    }

    private void logicOrToolStripMenuItem_Click(object sender, EventArgs e)
    {
      if (!this.layer.Visible)
        return;

      LogicOperate(Logic.LogicMethod.Or);
    }

    private void logicNotToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Logic l = new Logic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = l.LogicNot((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void logicXorToolStripMenuItem_Click(object sender, EventArgs e)
    {
      if (!this.layer.Visible)
        return;

      LogicOperate(Logic.LogicMethod.Xor);
    }

    private void autoFitThresholdToolStripMenuItem_Click(object sender, EventArgs e)
    {
      GrayProcessing gp = new GrayProcessing();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = gp.AutoFitThreshold((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void areaToolStripMenuItem_Click(object sender, EventArgs e)
    {
      RegionDialog dlg = new RegionDialog(this.canvasMain);
      dlg.Text = "区域面积信息";
      dlg.IsShowContour = false;
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        SaveCanvas();
      }
    }

    private void perimeterToolStripMenuItem_Click(object sender, EventArgs e)
    {
      RegionDialog dlg = new RegionDialog(this.canvasMain);
      dlg.Text = "区域周长信息";
      dlg.IsShowContour = true;
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        SaveCanvas();
      }
    }

    private void clearSmallAreaToolStripMenuItem_Click(object sender, EventArgs e)
    {
      DegreeDialog dlg = new DegreeDialog(this.canvasMain);
      dlg.Text = "消除小区域";
      dlg.Description = "阈值调节";
      dlg.Maximum = 100;
      dlg.Degree = 33;
      dlg.Support = DegreeDialog.SupportMethod.ClearSmallArea;   
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        SaveCanvas();
      }
    }

    private void contourPickToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Segmentation s = new Segmentation();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = s.ContourPick((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void contourTraceToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Segmentation s = new Segmentation();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = s.ContourTrace((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void projectHorzToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Segmentation s = new Segmentation();
      this.canvasMain.Image = s.Project(this.canvasMain.Image, true);

      SaveCanvas();
    }

    private void projectVertToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Segmentation s = new Segmentation();
      this.canvasMain.Image = s.Project(this.canvasMain.Image, false);

      SaveCanvas();
    }

    private void erosionHorzToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Morphologic m = new Morphologic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = m.ErosionHorz((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void erosionVertToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Morphologic m = new Morphologic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = m.ErosionVert((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void erosionCrossToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Morphologic m = new Morphologic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = m.ErosionCross((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void dilationHorzToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Morphologic m = new Morphologic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = m.DilationHorz((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void dilationVertToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Morphologic m = new Morphologic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = m.DilationVert((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void dilationCrossToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Morphologic m = new Morphologic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = m.DilationCross((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void openingToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Morphologic m = new Morphologic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = m.Opening((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void closingToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Morphologic m = new Morphologic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = m.Closing((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void thinningToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Morphologic m = new Morphologic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = m.Thinning((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void thickeningToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Morphologic m = new Morphologic();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = m.Thickening((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void meanNNToolStripMenuItem_Click(object sender, EventArgs e)
    {
      FilterDialog dlg = new FilterDialog(this.canvasMain);
      dlg.Support = Filter.FilteringMethod.Mean;
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        SaveCanvas();
      }
    }

    private void autoFitToolStripMenuItem_Click(object sender, EventArgs e)
    {
      Filter f = new Filter();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = f.FilterAutoFit((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void medianNNToolStripMenuItem_Click(object sender, EventArgs e)
    {
      FilterDialog dlg = new FilterDialog(this.canvasMain);
      dlg.Support = Filter.FilteringMethod.Median;
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        SaveCanvas();
      }
    }

    private void medianCrossToolStripMenuItem_Click(object sender, EventArgs e)
    {
      FilterDialog dlg = new FilterDialog(this.canvasMain);
      dlg.Support = Filter.FilteringMethod.Median;
      dlg.IsWindowFiltering = false;
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        SaveCanvas();
      }
    }

    private void maxNNToolStripMenuItem_Click(object sender, EventArgs e)
    {
      FilterDialog dlg = new FilterDialog(this.canvasMain);
      dlg.Support = Filter.FilteringMethod.Maximum;
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        SaveCanvas();
      }
    }

    private void minNNToolStripMenuItem_Click(object sender, EventArgs e)
    {
      FilterDialog dlg = new FilterDialog(this.canvasMain);
      dlg.Support = Filter.FilteringMethod.Minimum;
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        SaveCanvas();
      }
    }

    private void robertsToolStripMenuItem_Click(object sender, EventArgs e)
    {
      EdgeDetect ed = new EdgeDetect();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = ed.Roberts((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void sobelToolStripMenuItem_Click(object sender, EventArgs e)
    {
      EdgeDetect ed = new EdgeDetect();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = ed.Sobel((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void prewittToolStripMenuItem_Click(object sender, EventArgs e)
    {
      EdgeDetect ed = new EdgeDetect();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = ed.Prewitt((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void kirschToolStripMenuItem_Click(object sender, EventArgs e)
    {
      EdgeDetect ed = new EdgeDetect();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = ed.Kirsch((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void gaussLaplacianToolStripMenuItem_Click(object sender, EventArgs e)
    {
      EdgeDetect ed = new EdgeDetect();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = ed.GaussLaplacian((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void edgeDetectHorzToolStripMenuItem_Click(object sender, EventArgs e)
    {
      EdgeDetect ed = new EdgeDetect();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = ed.EdgeDetectHorizontal((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void edgeDetectVertToolStripMenuItem_Click(object sender, EventArgs e)
    {
      EdgeDetect ed = new EdgeDetect();
      Bitmap srcImage = this.canvasMain.Image;
      Bitmap dstImage = ed.EdgeDetectVertical((Bitmap)srcImage.Clone());

      SaveCanvas(srcImage, dstImage);
    }

    private void edgeEnhanceToolStripMenuItem_Click(object sender, EventArgs e)
    {
      DegreeDialog dlg = new DegreeDialog(this.canvasMain);
      dlg.Text = "边缘增强";
      dlg.Description = "阈值调节";
      dlg.Maximum = 64;
      dlg.Degree = 16;
      dlg.Support = DegreeDialog.SupportMethod.EdgeEnhance;
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        SaveCanvas();
      }
    }

    private void edgeHomogenizeToolStripMenuItem_Click(object sender, EventArgs e)
    {
      DegreeDialog dlg = new DegreeDialog(this.canvasMain);
      dlg.Text = "边缘均衡化";
      dlg.Description = "阈值调节";
      dlg.Maximum = 64;
      dlg.Degree = 16;
      dlg.Support = DegreeDialog.SupportMethod.EdgeHomogenize;
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        SaveCanvas();
      }
    }

    private void advancedToolStripMenuItem_Click(object sender, EventArgs e)
    {
      AdvancedDialog dlg = new AdvancedDialog();
      if (dlg.ShowDialog() == DialogResult.OK)
      {
        Effect f = new Effect();
        Bitmap srcImage = this.canvasMain.Image;
        Bitmap dstImage = f.Custom((Bitmap)srcImage.Clone(), dlg.Sequence);

        SaveCanvas(srcImage, dstImage);
      }
    }


    /******************************
     * 
     * 帮助菜单
     * 
     ******************************/

    private void contentToolStripMenuItem_Click(object sender, EventArgs e)
    {
      if (DialogResult.OK == MessageBox.Show(
        "请到本软件官方发布网站查看软件最新动向!\nhttp://www.PhotoSprite.com",
        "友情提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Information))
        System.Diagnostics.Process.Start("http://www.PhotoSprite.com");
    }

    private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
    {
      AboutBox dlg = new AboutBox();
      dlg.ShowDialog();
    }

  }
}

⌨️ 快捷键说明

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