コード例 #1
0
        private bool IsUsingCorrectTrait(Bitmap bmpScreenCapture, System.Drawing.Point p, int specIndex, int traitIndex, int traitValue)
        {
            int   brightestIndex = -1;
            ulong brightestColor = 0;

            for (int ii = 0; ii < 3; ++ii)
            {
                double x = hp.TraitOffsetX + traitIndex * hp.TraitSpacingX;
                double y = hp.TraitOffsetY + specIndex * hp.TraitSpacingY;

                y += ii * hp.TraitChoiceSpacing;

                int border = 7;
                var rect   = new System.Drawing.Rectangle(p.X + (int)x + border, p.Y + (int)y + border, (int)hp.TraitIconSize - border * 2, (int)hp.TraitIconSize - border * 2);

                var screenCaptureRegion = bmpScreenCapture.Clone(rect, bmpScreenCapture.PixelFormat);

                ulong brightness = ImageUtils.AverageBrightness(screenCaptureRegion);
                if (brightness > brightestColor)
                {
                    brightestColor = brightness;
                    brightestIndex = ii;
                }

                //for debugging:
                //screenCaptureRegion.Save(string.Format("TraitIcons/spec{0}-trait{1}-{2}.bmp", specIndex, traitIndex, ii), System.Drawing.Imaging.ImageFormat.Bmp);

                screenCaptureRegion.Dispose();
            }

            return(traitValue == brightestIndex);
        }