public void Stolb(int i, int N2x, BitmapData data2, int Ny, int NyP, ColorModeEnum colorMode)
        {
            int N2 = 0;

            if (Ny > NyP)
            {
                N2 = (Ny - NyP) / 2;
                for (int j = 0; j < N2; j++)
                {
                    array[i, j] = 0.0;
                }
                for (int j = N2; j < Ny - N2; j++)
                {
                    Color c1 = ImageProcessor.getPixel(i - N2x, j - N2, data2);
                    array[i, j] = GetColorValue(c1, colorMode);
                }
                for (int j = Ny - N2; j < Ny; j++)
                {
                    array[i, j] = 0.0;
                }
            }
            else
            {
                for (int j = 0; j < Ny; j++)
                {
                    Color c1 = ImageProcessor.getPixel(i - N2x, j, data2);
                    array[i, j] = c1.R;
                }
            }
        }
Ejemplo n.º 2
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        unsafe private static void drawPixelSquareStep(int x, int y, Color fillColor, List <Point> listOfPoints, BitmapData imageData, Image someImage, Color borderColor)
        {
            Color pixelcolor;

            if (x + 1 < someImage.Size.Width)
            {
                pixelcolor = ImageProcessor.getPixel(x + 1, y, imageData);
                if ((pixelcolor.ToArgb() != borderColor.ToArgb()) && (pixelcolor.ToArgb() != fillColor.ToArgb()))
                {
                    listOfPoints.Add(new Point(x + 1, y));
                    ImageProcessor.setPixel(imageData, x + 1, y, fillColor);
                }
            }

            if (y + 1 < someImage.Size.Height)
            {
                pixelcolor = ImageProcessor.getPixel(x, y + 1, imageData);

                if ((pixelcolor.ToArgb() != borderColor.ToArgb()) && (pixelcolor.ToArgb() != fillColor.ToArgb()))
                {
                    listOfPoints.Add(new Point(x, y + 1));
                    ImageProcessor.setPixel(imageData, x, y + 1, fillColor);
                }
            }

            if (x - 1 >= 0)
            {
                pixelcolor = ImageProcessor.getPixel(x - 1, y, imageData);

                if ((pixelcolor.ToArgb() != borderColor.ToArgb()) && (pixelcolor.ToArgb() != fillColor.ToArgb()))
                {
                    listOfPoints.Add(new Point(x - 1, y));
                    ImageProcessor.setPixel(imageData, x - 1, y, fillColor);
                }
            }

            if (y - 1 >= 0)
            {
                pixelcolor = ImageProcessor.getPixel(x, y - 1, imageData);

                if ((pixelcolor.ToArgb() != borderColor.ToArgb()) && (pixelcolor.ToArgb() != fillColor.ToArgb()))
                {
                    listOfPoints.Add(new Point(x, y - 1));
                    ImageProcessor.setPixel(imageData, x, y - 1, fillColor);
                }
            }
        }
Ejemplo n.º 3
0
        private static void Fill_Circle_Outside(ZArrayDescriptor zArrayDescriptor, BitmapData data2, int width, int height, Color c2)    // Заполнение цветом
        {
            Color c;
            Color red   = c2;
            Color green = Color.FromArgb(0, 0, 0);

            for (int j = 0; j < width; j++)
            {
                for (int i = 0; i < height; i++)
                {
                    c = ImageProcessor.getPixel(j, i, data2);
                    //if (c != red) ImageProcessor.setPixel(data2, j, i, green); else break;
                    if (c != red)
                    {
                        zArrayDescriptor.array[j, i] = 0;
                    }
                    else
                    {
                        break;
                    }
                }
            }
            for (int j = 0; j < width; j++)
            {
                for (int i = height - 1; i >= 0; i--)
                {
                    c = ImageProcessor.getPixel(j, i, data2);
                    if (c == green)
                    {
                        continue;
                    }
                    // if (c != red ) ImageProcessor.setPixel(data2, j, i, green); else break;
                    if (c != red)
                    {
                        zArrayDescriptor.array[j, i] = 0;
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
Ejemplo n.º 4
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        ///          Приведение изображения к диапазону без ZArrayDescriptor (перегруженный метод)
        /// </summary>
        public static void Range_Picture(PictureBox pictureBox01, double min, double max)
        {
            // c1 = ImageProcessor.getPixel(i, j, data1);                       // c1 = bmp1.GetPixel(i, j);
            // ImageProcessor.setPixel(data5, i, j, Color.FromArgb(r, r, r));   // bmp2.SetPixel(j, i, c1);
            // bmp5.UnlockBits(data5);
            if (pictureBox01 == null)
            {
                MessageBox.Show("SumClass pictureBox01 == null"); return;
            }


            int width  = pictureBox01.Image.Width;
            int height = pictureBox01.Image.Height;

            Bitmap     bmp2  = new Bitmap(width, height);
            BitmapData data2 = ImageProcessor.getBitmapData(bmp2);

            Bitmap     bmp1  = new Bitmap(pictureBox01.Image, width, height);
            BitmapData data1 = ImageProcessor.getBitmapData(bmp1);


            if (max == min)
            {
                for (int j = 0; j < width; j++)
                {
                    for (int i = 0; i < height; i++)
                    {
                        int c = 0;
                        if (max < 255 && max > 0.0)
                        {
                            c = Convert.ToInt32(max);
                        }
                        if (max > 255)
                        {
                            c = 255;
                        }
                        if (max < 0)
                        {
                            c = 0;
                        }
                        Color c1 = Color.FromArgb(c, c, c);
                        ImageProcessor.setPixel(data2, j, i, c1);
                    }
                }
            }
            if (max != min)
            {
                double mxmn = 255.0 / (max - min);
                for (int i = 0; i < width; i++)
                {
                    for (int j = 0; j < height; j++)
                    {
                        //double fc = zArrayPicture.array[j, i];
                        Color  c2 = ImageProcessor.getPixel(i, j, data1);
                        double fc = c2.G;
                        if (fc > max)
                        {
                            fc = max;
                        }
                        if (fc < min)
                        {
                            fc = min;
                        }
                        int   c  = Convert.ToInt32((fc - min) * mxmn);
                        Color c1 = Color.FromArgb(c, c, c);
                        ImageProcessor.setPixel(data2, i, j, c1);
                    }
                }
            }
            pictureBox01.Image = bmp2;
            bmp2.UnlockBits(data2);
        }