示例#1
0
        //--------------------------------------------------------------------------------------
        public FBordersByColorForImage(Image pImage)
        {
            InitializeComponent();

            fSourceBitmap = pImage as Bitmap;
            if (fSourceBitmap != null)
            {
                pbSourceImage.Image = fSourceBitmap;
            }

            fBlackWhiteExplorer = new CBlackWhiteExplorer();

            Color[] lFinalColors = CBlackWhiteExplorer.DefineExactNeedColor(8);
            fColorsOfVariant = new Color[8];
            fTextOfColors    = new string[8];
            for (int i = 0; i < 6; i++)
            {
                fColorsOfVariant[i + 1] = lFinalColors[i];
            }
            fColorsOfVariant[0] = Color.FromArgb(255, 0, 0, 0);
            fColorsOfVariant[7] = Color.FromArgb(255, 255, 255, 255);
            for (int i = 0; i < fTextOfColors.Length; i++)
            {
                fTextOfColors[i] = fColorsOfVariant[i].R.ToString() + ":" +
                                   fColorsOfVariant[i].G.ToString() + ":" + fColorsOfVariant[i].B.ToString();
            }
            l000.Text              += "   (" + fTextOfColors[0] + ")";
            l001.Text              += "   (" + fTextOfColors[1] + ")";
            l010.Text              += "   (" + fTextOfColors[2] + ")";
            l011.Text              += "   (" + fTextOfColors[3] + ")";
            l100.Text              += "   (" + fTextOfColors[4] + ")";
            l101.Text              += "   (" + fTextOfColors[5] + ")";
            l110.Text              += "   (" + fTextOfColors[6] + ")";
            l111.Text              += "   (" + fTextOfColors[7] + ")";
            l000.BackColor          = fColorsOfVariant[0];
            l001.BackColor          = fColorsOfVariant[1];
            l010.BackColor          = fColorsOfVariant[2];
            l011.BackColor          = fColorsOfVariant[3];
            l100.BackColor          = fColorsOfVariant[4];
            l101.BackColor          = fColorsOfVariant[5];
            l110.BackColor          = fColorsOfVariant[6];
            l111.BackColor          = fColorsOfVariant[7];
            l000.ForeColor          = CImageSplitter.DefineBestBackColor(fColorsOfVariant[0]);
            l001.ForeColor          = CImageSplitter.DefineBestBackColor(fColorsOfVariant[1]);
            l010.ForeColor          = CImageSplitter.DefineBestBackColor(fColorsOfVariant[2]);
            l011.ForeColor          = CImageSplitter.DefineBestBackColor(fColorsOfVariant[3]);
            l100.ForeColor          = CImageSplitter.DefineBestBackColor(fColorsOfVariant[4]);
            l101.ForeColor          = CImageSplitter.DefineBestBackColor(fColorsOfVariant[5]);
            l110.ForeColor          = CImageSplitter.DefineBestBackColor(fColorsOfVariant[6]);
            l111.ForeColor          = CImageSplitter.DefineBestBackColor(fColorsOfVariant[7]);
            fBordersByColorForImage = new CBordersByColorForImage(fSourceBitmap);
        }
        //--------------------------------------------------------------------------------------
        private void ApplySelectBorders(bool pIsUpdateListBad)
        {
            CBordersByColorForImage lBordersByColorForImage = new CBordersByColorForImage(pbSourceImage.Image as Bitmap);

            lBordersByColorForImage.Explore3DBorderGroup(pbSourceImage.Image as Bitmap,
                                                         tbRed.Value, tbGreen.Value, tbBlue.Value);
            txtTopCount.Text            = lBordersByColorForImage.TopListCount.ToString();
            txtBottomCount.Text         = lBordersByColorForImage.BottomListCount.ToString();
            txtTopRedSumma.Text         = lBordersByColorForImage.TopRedSumma.ToString();
            txtTopGreenSumma.Text       = lBordersByColorForImage.TopGreenSumma.ToString();
            txtTopBlueSumma.Text        = lBordersByColorForImage.TopBlueSumma.ToString();
            txtBottomRedSumma.Text      = lBordersByColorForImage.BottomRedSumma.ToString();
            txtBottomGreenSumma.Text    = lBordersByColorForImage.BottomGreenSumma.ToString();
            txtBottomBlueSumma.Text     = lBordersByColorForImage.BottomBlueSumma.ToString();
            txtTopRedCentre.Text        = lBordersByColorForImage.TopRedCentre.ToString();
            txtTopGreenCentre.Text      = lBordersByColorForImage.TopGreenCentre.ToString();
            txtTopBlueCentre.Text       = lBordersByColorForImage.TopBlueCentre.ToString();
            txtBottomRedCentre.Text     = lBordersByColorForImage.BottomRedCentre.ToString();
            txtBottomGreenCentre.Text   = lBordersByColorForImage.BottomGreenCentre.ToString();
            txtBottomBlueCentre.Text    = lBordersByColorForImage.BottomBlueCentre.ToString();
            txtTopDevisionSumma.Text    = lBordersByColorForImage.TopDevisionSumma.ToString();
            txtBottomDevisionSumma.Text = lBordersByColorForImage.BottomDevisionSumma.ToString();
            txtTopDevision.Text         = lBordersByColorForImage.TopDevision.ToString();
            txtBottomDevision.Text      = lBordersByColorForImage.BottomDevision.ToString();
            txtBadPoints.Text           = lBordersByColorForImage.BadPoint.ToString();
            txtVeryBadPoints.Text       = lBordersByColorForImage.VeryBadPoint.ToString();

            fImageListDataSet.BadPointFor3D.Clear();
            if (pIsUpdateListBad)
            {
                for (int i = 0; i < lBordersByColorForImage.BadPointList.Count; i++)
                {
                    fImageListDataSet.BadPointFor3D.AddBadPointFor3DRow(
                        lBordersByColorForImage.BadPointList[i].Point.R.ToString() + "," +
                        lBordersByColorForImage.BadPointList[i].Point.G.ToString() + "," +
                        lBordersByColorForImage.BadPointList[i].Point.B.ToString(),
                        lBordersByColorForImage.BadPointList[i].Level,
                        lBordersByColorForImage.BadPointList[i].Weight);
                }
                dgBadPoint.Update();
            }
        }